Asp.net IIS 7的URL重写器返回404服务器错误

Asp.net IIS 7的URL重写器返回404服务器错误,asp.net,iis-7,url-rewriting,http-status-code-404,Asp.net,Iis 7,Url Rewriting,Http Status Code 404,我在这里实现了“方法3:使用HttpModule使用IIS7执行无扩展的URL重写”: - 基于URLRewriter模块: - 它似乎在我的本地环境下工作,但在生产服务器(运行IIS 7)上显示“404-未找到文件或目录”页面 我在谷歌上搜索过,似乎找不到解决方案 最后,我们回到IIS 6,并按照此处的说明进行操作: - 但是有一天我们可能不得不在共享主机环境中升级到IIS 7,同样的问题还会再次出现 我的同事也有同样的问题,我检查他是否将应用程序池设置为使用经典管道,而不是使用他应该使用的集

我在这里实现了“方法3:使用HttpModule使用IIS7执行无扩展的URL重写”: -

基于URLRewriter模块: -

它似乎在我的本地环境下工作,但在生产服务器(运行IIS 7)上显示“404-未找到文件或目录”页面

我在谷歌上搜索过,似乎找不到解决方案

最后,我们回到IIS 6,并按照此处的说明进行操作: -


但是有一天我们可能不得不在共享主机环境中升级到IIS 7,同样的问题还会再次出现

我的同事也有同样的问题,我检查他是否将应用程序池设置为使用经典管道,而不是使用他应该使用的集成管道,并将其更改为集成管道解决了问题。也许这也能解决你的问题?

主机管理员让它在IIS 7中工作。HTTP处理程序需要与不同的应用程序池进行通配符映射,以使其在IIS 7中工作。希望这有帮助

确保在Web.Config中有以下内容:

<system.webServer>
  <validation validateIntegratedModeConfiguration="false"/>
  <handlers>
    <add name="wildcard" path="*" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="None" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
  </handlers>
</system.webServer>

我遇到了一个类似的问题,我的页面p1(已重写,原来是p1.aspx)被错误地视为p1目录


我在web.config中添加了,它似乎开始工作了。

对于IIS 7

将web.config文件中的HttpModules定义从system.web复制到system.webServer

<system.webServer>
    <modules>
        <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>
    </modules>
<system.webServer>


应用程序池:托管Pipiline Mode=Integrated

托管人员让它在IIS 7中工作。关于他所做的一切,我只知道“HTTP处理程序需要与不同的应用程序池进行通配符映射,才能在IIS 7中工作”。希望这能帮助那些在谷歌上找不到任何东西的人。这是我为了让不存在的URL映射到prpoerly而必须做的。在这个答案中可以找到完整的weg.config配置(对我来说,这是有效的,上面由Jason提出的解决方案对我的情况没有帮助,asp.net 2.0集成版,IIS 7.5):太好了!你救了我一天