每当我在 IIS7 管理器中为网站添加处理程序映射时,它总是将处理程序添加到站点的本地web.config
文件中。
有没有办法告诉经理只将处理程序映射添加到站点配置中applicationHost.config
,例如:
<location path="Test Site">
<system.webServer>
<handlers>
<clear />
<add
name="PHP-FastCGI"
path="*.php" verb="GET,HEAD,POST"
modules="FastCgiModule"
scriptProcessor="c:\php\php-cgi.exe"
resourceType="Either"
/>
<-- Other handler mappings here -->
</handlers>
<security>
<authentication>
<anonymousAuthentication
enabled="true"
userName="i_test"
password="[enc:AesProvider:snipped:enc]"
/>
</authentication>
</security>
</system.webServer>
</location>
我知道如何appcmd
使用/commit:apphost
开关来做到这一点,但最好通过 UI 实现这一点。
IIS 管理器有意将设置设置为允许的最低级别。由于您可以在站点的 web.config 中设置该设置,因此它将始终在此处应用。
IIS 管理器本身并没有让您选择在哪里设置它。原因是对于普通管理员来说,它很快就会变得混乱和混乱,因为如果在 web.config 中也设置了 applicationHost.config 中的设置,它将被忽略。因此,确保没有混淆的最简洁方法是将其应用到允许的最低级别。
解决方案(除了 appcmd 或直接编辑 applicationHost.config 之外)是使用 IIS 管理包中的配置编辑器(在 WS08 R2 上默认安装 IIS 7.5)。这确实允许您选择要应用设置的位置。
实际上,为了完整起见,虽然对于处理程序来说通常不是一个值得选择的选项,但您可以关闭该站点或服务器的处理程序的委派。然后 IIS 管理器会在 applicationHost.config 中设置它。