是否可以从Web配置更改IIS设置

时间:2009-10-21 10:25:53

标签: asp.net iis hosting web-config

我正在使用url rewriting.net。我在本地主机上测试网络,它是成功的工作。但是当我将Web部署到远程主机时,url重写不起作用。问题是(无法找到资源)。我发现了问题。我部署的远程主机IIS配置是(Virtual dir-> Properties-> Home directory-> Application Mapping-> .aspx-> Edit->“检查文件是否存在”)。我需要取消选中它们。但我部署的主机控制面板没有应用程序映射功能。

如何使用web.config取消选中此选项?

有可能吗?

你有其他想法吗?

1 个答案:

答案 0 :(得分:2)

IIS6

如果这是IIS6,那么很遗憾无法通过ASP.NET web.config文件更改脚本映射设置。

您需要找到一个允许通过其控制面板更改此配置的主机,或者请您当前的主机(很好地)为您更改此内容。

IIS7

如果这是IIS7,那么您需要在<system.webServer />文件中添加(如果它尚不存在)web.config配置部分并修改处理程序行为:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
       <handlers>
            <!-- remove existing handlers -->
            <remove name="PageHandlerFactory-ISAPI-2.0" />
            <remove name="PageHandlerFactory-Integrated" />
            <!-- add back but set resourceType="Unspecified" to prevent
                 checking if file exists -->
            <add name="PageHandlerFactory-ISAPI-2.0" 
                resourceType="Unspecified" 
                path="*.aspx" 
                verb="GET,HEAD,POST,DEBUG" 
                modules="IsapiModule" 
                scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" 
                requireAccess="Script" 
                preCondition="classicMode,runtimeVersionv2.0,bitness32" 
                responseBufferLimit="0" />
            <add name="PageHandlerFactory-Integrated"
                resourceType="Unspecified"
                path="*.aspx" 
                verb="GET,HEAD,POST,DEBUG" 
                type="System.Web.UI.PageHandlerFactory" 
                preCondition="integratedMode" />
       </handlers>
    </system.webServer>
</configuration>

只有当您的主机具有对Handler Mappings功能的读/写访问权限时,才能使用此功能。

如果这是IIS 7并且PageHandlerFactory-ISAPI-2.0PageHandlerFactory-Integrated处理程序配置为resourceType="File"resourceType="Either",我会感到非常惊讶。开箱即用,它们被配置为不检查文件和文件夹是否存在。