每当我在 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 来实现这一点会更好。
答案1
IIS 管理器特意将该设置设置为允许的最低级别。由于您可以在站点的 web.config 中设置该设置,因此它将始终在那里应用该设置。
IIS 管理器本身不允许您选择在何处设置它。原因是,对于普通管理员来说,这很快就会变得混乱和杂乱,因为如果在 web.config 中也设置了 applicationHost.config 中的设置,该设置将被忽略。因此,确保不会造成混淆的最干净的方法是将其应用在允许的最低级别。
解决方案(除了 appcmd 或直接编辑 applicationHost.config 之外)是使用 IIS 管理包中的配置编辑器(默认情况下,它在 WS08 R2 上与 IIS 7.5 一起安装)。这确实允许您选择要应用设置的位置。
实际上,为了完整起见,尽管通常对于处理程序来说这不是一个值得的选择,但您可以关闭该站点或服务器的处理程序的委托。然后 IIS 管理器将在 applicationHost.config 中设置它。