httpModules URL重写器适用于Visual Studios Dev Server,但不适用于IIS 7.5

时间:2011-11-22 20:42:14

标签: asp.net visual-studio-2010 iis-7.5

在我的web.config中,我有一个自定义的Url重写器类,它接受查询字符串,如/movies/godzilla.aspx,并将其转换为/template.aspx?id=1234

当我在Visual Studio的内置Web服务器上本地运行它时,重写器工作正常,但是当我把它放在IIS 7.5上并尝试使用友好名称访问页面时,我收到一条消息,说连接已重置并且必须做一个iisreset让网站重新上线。使用查询字符串URL可以从服务器完全访问该页面。

以下是我的web.config的片段:

    <system.web>
        <httpModules>
            <add name="ApFriendlyURL" type="FriendlyURL" />
        </httpModules>
        ....
    </system.web>

我很困惑为什么在Visual Studio中的Dev Server上运行而在IIS上运行时这种方法有效。我玩过IIS中的设置,但我似乎无法找到任何可以让我使用FriendlyURL类作为重写器的东西

2 个答案:

答案 0 :(得分:1)

必须在system.webServer/modules部分配置IIS 7.5中的HTTP模块。只需在那里复制模块定义。

http://msdn.microsoft.com/en-us/library/aa347531(VS.90).aspx

请注意重复模块配置可能存在的问题。如果是这样,则关闭集成模式配置:

http://www.iis.net/ConfigReference/system.webServer/validation

答案 1 :(得分:0)

如果您正在使用.NET 2.0应用程序,则应在AppPool设置中启用“集成模式”