zoukankan      html  css  js  c++  java
  • IIS Express 使用详细说明

    最近在使用XP的IIS发布Asp.Net MVC3的项目,但是发现一个很头疼的一个问题,在IIS指定虚拟目录来发布网站发布不了,以前发布Webfrom项目则不会有这样的问题,应该是跟路由路径有关系,导致每次都是从网站根节点算起,而不是从指定的虚拟目录算。如果是发布在默认网站下,也就是直接右击默认网站,将主目录指定到网站路径,再在配置下添加aspnet_isapi.dll映射,这样是可以发布成功的。但是这样的话,一次就只能发布一个站点了。以后项目应该都会使用MVC写的,每次都更改主目录太不方便了。后来朋友那提到了IISExpress,就开始了使用和学习,发现这真是个好东西,有点类似tomcat的感觉,值得Net程序员兴奋啊,未来必将使用广泛,下面我总结一些关于IISExpress的使用。
     
    已经有IIS 8 Express发布了,但是不支持XP,所以现在仍然选择使用IIS 7.5 Express,很多网页上都是说IIS Express 7.5,我其实也喜欢这样叫,感觉比较顺口,但是其实是不对的,因为这个并不是Express的版本号,而是IIS的版本号。官网上是这样描述IIS 7.5 Express的,兼具IIS 7.5的强大功能与轻型Web(例如ASP.NET开发服务器,也称为"Cassini")的便利,可以增强在Windows上开发和测试Web应用程序的能力。(当然这个叫法也不用太在意,但这里提出来,因为个人一开始是误解的,知道就行了)
     
    安装完上面的下载文件后,你可以在C:\Program Files\IIS Express看到安装文件,主要注意iisexpress.exe,这是IISExpress的启动文件。点击后会启动一个cmd和托盘程序。右击托盘程序可以看到如下图,这个是默认的站点地址,点击就可以打开这个站点网页。遗憾的事,这个网页没有像tomcat一样给我们提供管理站点的功能,而是提供一些链接指向 WebMatrix网站,这个是一个可以创建网站和用IISExpress发布站点的工具,但是感觉对于专业开发来说不实用,所以个人并没有使用,而是手工改配置文件。
     
    但是这个站点是在哪里配置的呢,我们可以在“我的文档”下看到一个“IISExpress”的文件夹,打开下面的Config\applicationhost.config文件,找到sites节点,就是网站的配置。(默认是放在我的文档下的,这解决了没有管理员权限修改的问题)
    Site详细配置
    <sites>
                <!-- site 站点 如果启动了右击托盘IISExpress就能看到,可以在sites下面添加多个site节点   serverAutoStart=true 是指定站点是否随服务器启动,但是这个属性我并没有看到作用,不管是否设置都是启动第一个站点 -->
                <site name="WebSite1" id="1"  serverAutoStart="true" >
                    <!-- application应用程序 和在iis中添加的应用程序一样的-->
                    <application path="/">
                        <!-- virtualDirectory虚拟目录  %IIS_SITES_HOME%是C:\Program Files\IIS Express\  -->
                        <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
                    </application>
                    <!-- 可以添加多个path不重复的application  下面applicationDefaults会默认应用程序池,但是也可以指定应用程序池-->
                    <!-- 这里有个问题如果applicationPool是Clr2IntegratedAppPool 但sites的applicationDefaults是Clr4IntegratedAppPool,则这个虚拟目录就不能被启动访问
                      目前我只能通过将applicationDefaults设置为Clr2IntegratedAppPool才可以启动,并不清楚怎么给不同网站 指定不一样的程序池并启动-->
                    <application path="/test"  applicationPool="Clr2IntegratedAppPool">
                        <!-- 可以添加多个虚拟目录 和iis中添加虚拟目录一样-->
                        <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
                        <virtualDirectory path="/testvir" physicalPath="%IIS_SITES_HOME%\WebSite1" />
                    </application>
                    <bindings>
                        <!-- binding站点绑定信息  protocol有http和https两种   bindingInformation指定绑定具体信息 :8080:localhost=>:端口:主机名" -->
                        <binding protocol="http" bindingInformation=":8080:localhost" />
                        <!-- 同一个网站绑定多个端口 -->
                        <binding protocol="http" bindingInformation=":8899:localhost" />
                        <!-- 通常在IIS发布的网站 用localhost 也一定可以用127.0.01访问 但是这里不行,必须手工绑定 -->
                        <binding protocol="http" bindingInformation=":8080:127.0.0.1" />
                        <!-- 局域网对应的IP地址也是需要自己绑定的  局域网其他用户才能通过ip访问-->
                        <binding protocol="http" bindingInformation=":8080:192.168.230.128" />
                    </bindings>
                </site>
                <!-- 可以添加多个site节点  但是必须是name和id 都不重复的-->
                <site name="WebSite2" id="2" serverAutoStart="true" >
                    <application path="/test">
                        <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
                    </application>
                    <bindings>
                        <binding protocol="http" bindingInformation=":8080:localhost" />
                    </bindings>
                </site>
                <siteDefaults>
                    <!--   %IIS_USER_HOME%是"我的文档"的路径   Logs下是访问站点的记录   -->
                    <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
                    <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
                </siteDefaults>
                <!--applicationDefaults 指定站点的默认应用程序池  在sites上面有applicationPools节点,可以在那看到有五个应用程序池,分别是.Net2.0/4.0的集成/经典模式、以及一个非托管程序池-->
                <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
                <virtualDirectoryDefaults allowSubDirConfig="true" />
            </sites>

    可以通过Cmd来启动iisexpress,如果有错误会有提示。输入iisexpress.exe -help ,可以看到一些命令帮助

     
     
    常用的有两种命令方式启动iisexpress:
    1)iisexpress.exe  /site:<站点名>   /config:<配置文件路径>   /systray:<boolean是否启动系统托盘应用,默认true>
    如:C:\Program Files\IIS Express>iisexpress.exe /site:website2 /config:"C:\Documents
    and Settings\Administrator\My Documents\IISExpress\config\applicationhost.confi
    g" /systray:true
    这些参数都是可选的,一般是在配置文件中配置过的站点
    2)iisexpress.exe /path:<应用程序路径> /port:<端口号,默认8080> /clr:<CLR版本:v2.0|v4.0> /systray:<boolean是否启动系统托盘应用,默认true>
    这种方式常用来临时指定一个网站,而不需要在配置文件中配置
    C:\Program Files\IIS Express>iisexpress.exe /path:"C:\Program Files\IIS Express\
    WebSite1" /port:8899 /clr:v4.0 /systray:true
     
     
    Vs2010的SP1 可以支持IISExpress 
     
    PS:现在对于IISExpress学习还不透彻,先这样,后续再补充
     
  • 相关阅读:
    HDU 6071
    HDU 6073
    HDU 2124 Repair the Wall(贪心)
    HDU 2037 今年暑假不AC(贪心)
    HDU 1257 最少拦截系统(贪心)
    HDU 1789 Doing Homework again(贪心)
    HDU 1009 FatMouse' Trade(贪心)
    HDU 2216 Game III(BFS)
    HDU 1509 Windows Message Queue(队列)
    HDU 1081 To The Max(动态规划)
  • 原文地址:https://www.cnblogs.com/zswto999/p/2841191.html
Copyright © 2011-2022 走看看