我正在使用url rewriting.net。我在本地主机上测试网络,它是成功的工作。但是当我将Web部署到远程主机时,url重写不起作用。问题是(无法找到资源)。我发现了问题。我部署的远程主机IIS配置是(Virtual dir-> Properties-> Home directory-> Application Mapping-> .aspx-> Edit->“检查文件是否存在”)。我需要取消选中它们。但我部署的主机控制面板没有应用程序映射功能。
如何使用web.config取消选中此选项?
有可能吗?
你有其他想法吗?
答案 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.0
和PageHandlerFactory-Integrated
处理程序配置为resourceType="File"
或resourceType="Either"
,我会感到非常惊讶。开箱即用,它们被配置为不检查文件和文件夹是否存在。