IIS 7.5 Express配置文件解析
默认使用的配置文件是在:
[我的文档]/IISExpress\config\
applicationhost.config 是核心的配置文件,它用于承载站点的定义、应用程序和应用程序池以及整个WEB服务器的配置。
由于是放在我的文档中的,所以修改它不需要管理员权限,意味着可以直接修改。
在修改后,下次启动应用程序就会起效。
在applicationhost.config内容中,<system.applicationHost> 用于定义网站和应用程序池。
默认情况下,其内容如下:
<applicationPools>
<add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
<add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
<add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
<add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
<add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" />
<applicationPoolDefaults managedRuntimeLoader="v4.0">
<processModel />
</applicationPoolDefaults>
</applicationPools>
IIS Express 内建了五个应用程序池,分别对应.Net 2.0/4.0的集成/经典模式、以及一个非托管程序池。
默认的程序池版本有 <spplicationPoolDefaults> 节来配置。
<sites> 节用于配置网站。
网站的默认应用程序池和虚拟目录默认配置由 <applicationDefaults> 和 <virtualDirectoryDefaults> 节点配置。
①.每个 <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。
③.<application> 这个节设置了网站的应用程序
每个网站都需要至少一个映射路径为“/”应用程序(它映射到根目录)。
除此之外,你可以继续添加并行的不同路径的 <application> ,这就类似于IIS中的网站里配置的应用程序。
例如,
在FishSite这个网站中,我需要添加一个单独的应用程序,映射到根目录下的fish目录,那么我就可以这样配置:
在<site>中,只有 path="/" 这个应用程序是必须的(不能缺少),其它都是可以任意添加的。
④.<virtualDirectory> 设置了目录的映射信息
在每个<application>节下,必须至少存在一个 path="/" 的 virtualDirectory,它代表了这个目录映射的位置。
除此之外,可以手动添加多个映射的路径不同的虚拟目录。