45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 电脑学院 > 服务器技术 >

详解如何配置IIS Express使用和注意点

电脑软硬件应用网 45IT.COM 时间:2011-10-31 13:23 作者:木鱼

VS2010的SP1引入了IIS Express支持,这是值得高兴的事情……因为自带的ASP.net Development Server只能单站点运行、不能设置虚拟目录、多少个项目就会出现多少个等等等等巴拉巴拉,我对它恨之入骨,总之,很长一段时间内我进行开发实际上都是用IIS的。但是用IIS有不方便的地方,就是必须开启IIS Admin服务,而且VS必须以管理员模式运行才能正常打开项目和调试。每次都以管理员模式启动已经比较麻烦了,比较郁闷的是,以管理员模式启动的vs处于特权状态,所以程序间的文件拖放就失效了……换句话说,如果我想从资源管理器中直接拖一个文件到vs中打开,就办不到了。

所以对IIS Express一直是比较期待的。

本文包含内容

  1. 关于IIS Express的介绍
  2. IIS Express的配置文件中网站的配置
  3. 如何在VS2010中配置IIS Express
  4. 如何避免需要管理员身份启动IIS Express
  5. IIS Express比较有用的命令行参数

1.关于IIS Express的介绍

Scottgu 在 这篇文章 中介绍了伴随着ASP.net MVC 3而来的新东西,其中就包含IIS Express 7.5,介绍如下:

  • 轻量,易于安装,安装包不到5M;
  • 从VS中启动、调试应用程序不需要管理员身份;
  • 带有完整的WEB服务器功能支持——支持SSL、URL回写以及其它IIS7.x的模块
  • 和IIS7.x完全一致的web.config配置模型
  • 可以和IIS、ASP.net Development Server 同时安装,没有任何冲突
  • 支持XP及更高的操作系统,在所有的系统上都提供IIS7.x一致的开发功能

关于IIS Express常规的安装、使用,相关介绍的文章比较多,我就不多说了。这里说说没怎么见人提的地方。

2.关于配置文件

默认情况下IIS Express使用的配置文件位于“我的文档”中,路径如下:“我的文档\IIS Express\Config”。其中,applicationhost.config 是核心的配置文件,它用于承载站点的定义、应用程序和应用程序池以及整个WEB服务器的配置。由于是放在我的文档中的,所以修改它不需要管理员权限,意味着可以直接修改。在修改后,下次启动应用程序就会起效。

在applicationhost.config内容中,<system.applicationHost> 用于定义网站和应用程序池。默认情况下,其内容如下:

  1. <system.applicationHost>
  2.     <applicationPools>
  3.         <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
  4.         <add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
  5.         <add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
  6.         <add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
  7.         <add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" />
  8.         <applicationPoolDefaults managedRuntimeLoader="v4.0">
  9.             <processModel />
  10.         </applicationPoolDefaults>
  11.     </applicationPools>
  12.     <!--
  13.       The <listenerAdapters> section defines the protocols with which the
  14.       Windows Process Activation Service (WAS) binds.
  15.     -->
  16.     <listenerAdapters>
  17.         <add name="http" />
  18.     </listenerAdapters>
  19.     <sites>
  20.         <site name="WebSite1" id="1" serverAutoStart="true">
  21.             <application path="/">
  22.                 <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
  23.             </application>
  24.             <bindings>
  25.                 <binding protocol="http" bindingInformation=":8080:localhost" />
  26.             </bindings>
  27.         </site>
  28.         <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
  29.         <virtualDirectoryDefaults allowSubDirConfig="true" />
  30.     </sites>
  31.     <webLimits />
  32. </system.applicationHost>

IIS Express 内建了五个应用程序池,分别对应.Net 2.0/4.0的集成/经典模式、以及一个非托管程序池。默认的程序池版本有 <spplicationPoolDefaults> 节来配置。<sites> 节用于配置网站。网站的默认应用程序池和虚拟目录默认配置由 <applicationDefaults> 和 <virtualDirectoryDefaults> 节点配置。以上的节点默认情况下我们并不需要太多关注,因为大多数情况下我们需要关注的只有 <sites> 下的 <site> 节点,这里保存了网站、应用程序的定义,才是我们需要真正关心的。

①.每个 <site> 就是一个网站。

这和IIS中的网站是一样的概念。serverAutoStart 设置了是否随着 IIS Express的启动而自动启动。如果设置为true,那么每次 IIS Express 启动都会自动加载(如果没有指定网站的话),否则只有以指定特定网站的模式运行时才会加载。

使用IIS Express加载特定网站的语法是:  IISExpress.exe /site:<站点名>

②.<site> 下的<bindings>设置了这个站点的绑定信息。

节点下的每个<binding>都是一个端口绑定信息。典型的绑定配置如下:<binding protocol="http" bindingInformation="*:8080:localhost" />

protocol 指定了绑定的协议类型(IIS Express内建了 HTTP 和 HTTPS两种协议支持),而“*:8080:localhost”则指定的绑定的具体信息,它有三个部分组成:“绑定的IP:端口:主机名”。默认情况下,绑定到任何本地IP、非保留端口、绑定到localhost。注意这个localhost,有讲究,特定情况下可能会导致你很困惑,请参考本文后面的内容。

③.<application> 这个节设置了网站的应用程序

每个网站都需要至少一个映射路径为“/”应用程序(它映射到根目录)。除此之外,你可以继续添加并行的不同路径的 <application> ,这就类似于IIS中的网站里配置的应用程序。

例如,在FishSite这个网站中,我需要添加一个单独的应用程序,映射到根目录下的fish目录,那么我就可以这样配置:

  1. <site name="FishSite" id="2">
  2.     <application path="/" applicationPool="Clr2IntegratedAppPool">
  3.         <virtualDirectory path="/" physicalPath="<网站的根目录>" />
  4.   </application>
  5.     <application path="/fish" applicationPool="Clr2IntegratedAppPool">
  6.         <virtualDirectory path="/" physicalPath="<此应用程序的根目录>" />
  7.         <virtualDirectory path="/content/" physicalPath="</fish/content/ 目录对应的虚拟目录>" />
  8.     </application>
  9.     <bindings>
  10.         <binding protocol="http" bindingInformation="*:5000:localhost" />
  11.     </bindings>
  12. </site>

在<site>中,只有 path="/" 这个应用程序是必须的(不能缺少),其它都是可以任意添加的。

④.<virtualDirectory> 设置了目录的映射信息

参见上面展示的代码。在每个<application>节下,必须至少存在一个 path="/" 的 virtualDirectory,它代表了这个目录映射的位置。除此之外,可以手动添加多个映射的路径不同的虚拟目录。

顶一下
(0)
0%
踩一下
(1)
100%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐知识