有没有办法告诉 IIS7 管理器修改 applicationHost.config 中的处理程序?

有没有办法告诉 IIS7 管理器修改 applicationHost.config 中的处理程序?

每当我在 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 中设置它。

相关内容