对于一个刚刚创建网站,以ASP.NET MVC5为例。
我们并没有在网页的配置文件(web.config)中配置一些处理程序或模块,如处理Session的SessionStateModule模块,映射Url的UrlRoutingModule模块等。
但是我们依然可以在控制器中正常的访问Session。我们请求的url依然能正确的映射到控制器和Action。
这是因为在IIS的配置文件中ApplicationHost.config的modules 元素中注册了很多模块 ,这些模块供IIS承载的所有应用程序使用。
在 ApplicationHost.config 文件中注册的模块具有全局范围,因为它们为所有由 IIS 承载的 Web 应用程序而注册。
同样,在 ApplicationHost.config 文件的 globalModules 元素中定义的本机代码模块也具有全局范围。如果 Web 应用程序不需要全局模块,则可以将其禁用。
当然这也只是这个配置文件的功能的一小部分,有时我们在IIS管理器中添加的映射关系等也都会存储在这个配置文件中。
但是没有十足的把握,不要修改这个配置文件或在修改前进行备份。因为这个文件供整个IIS承载的所有应用程序使用。一些不起眼的配置节点的丢失,对某些程序可能就是致命的。
下面我们列出这个配置文件的部分内容,大家也可以再自己的电脑C盘中搜索这个文件,详细的查看其中的内容。
<!--
The <globalModules> section defines all native-code modules.
To enable a module, specify it in the <modules> section.-->
<globalModules>
<add name="UriCacheModule" image="%IIS_BIN%\cachuri.dll" />
<!-- <add name="FileCacheModule" image="%IIS_BIN%\cachfile.dll" /> -->
<add name="TokenCacheModule" image="%IIS_BIN%\cachtokn.dll" />
<!-- <add name="HttpCacheModule" image="%IIS_BIN%\cachhttp.dll" /> -->
<add name="DynamicCompressionModule" image="%IIS_BIN%\compdyn.dll" />
<add name="StaticCompressionModule" image="%IIS_BIN%\compstat.dll" />
<add name="DefaultDocumentModule" image="%IIS_BIN%\defdoc.dll" />
<add name="DirectoryListingModule" image="%IIS_BIN%\dirlist.dll" />
<add name="ProtocolSupportModule" image="%IIS_BIN%\protsup.dll" />
<add name="HttpRedirectionModule" image="%IIS_BIN%\redirect.dll" />
<add name="ServerSideIncludeModule" image="%IIS_BIN%\iis_ssi.dll" />
<add name="StaticFileModule" image="%IIS_BIN%\static.dll" />
<add name="AnonymousAuthenticationModule" image="%IIS_BIN%\authanon.dll" />
<add name="CertificateMappingAuthenticationModule" image="%IIS_BIN%\authcert.dll" />
<add name="UrlAuthorizationModule" image="%IIS_BIN%\urlauthz.dll" />
<add name="BasicAuthenticationModule" image="%IIS_BIN%\authbas.dll" />
<add name="WindowsAuthenticationModule" image="%IIS_BIN%\authsspi.dll" />
<!-- <add name="DigestAuthenticationModule" image="%IIS_BIN%\authmd5.dll" /> -->
<add name="IISCertificateMappingAuthenticationModule" image="%IIS_BIN%\authmap.dll" />
<add name="IpRestrictionModule" image="%IIS_BIN%\iprestr.dll" />
<add name="DynamicIpRestrictionModule" image="%IIS_BIN%\diprestr.dll" />
<add name="RequestFilteringModule" image="%IIS_BIN%\modrqflt.dll" />