Intelligencia.UrlRewriter可以在IIS7中工作吗?

时间:2009-03-05 15:56:01

标签: iis iis-7 url-rewriting

我们继承了一个使用Intelligencia.UrlRewriter模块的应用程序。我们的环境虽然是IIS7。我们已经将我们的网站设置为在经典的asp.net应用程序池中运行(它可以解决很多这类问题)。但是,我们仍然没有看到我们应用中的网址被重写。

有没有人碰到这个?

4 个答案:

答案 0 :(得分:21)

您需要在system.webServer元素上定义配置,例如:

    <system.webServer>
         <validation validateIntegratedModeConfiguration="false" />
        <modules runAllManagedModulesForAllRequests="true">
  <add name="UrlRewriter" 
   type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" />
        </modules>
    </system.webServer>

您可以保留两个配置。你现在可能拥有的是:

<httpModules>
      <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter" />
        </httpModules>

查看http://learn.iis.net/page.aspx/243/aspnet-integration-with-iis7/

上的“将ASP.NET应用程序迁移到IIS 7.0集成mod”部分

PS。我一直在使用它,没有任何问题,只要该配置在。

更新1:同时检查http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx,特别是“方法3:使用HttpModule执行无扩展URL重写IIS7”,因为我添加的配置具有无扩展名配置。

答案 1 :(得分:1)

是的我在Win Vista&amp;运行的Intelligencia.UrlRewriter模块下遇到了完全相同的问题。 IIS7,但转换到经典的asp.net应用程序池确实解决了这个问题。您是否在新的虚拟目录中运行应用程序?这有时会破坏应用程序的根路径,这可能会对web.config中的规则产生影响

答案 2 :(得分:1)

我发现了同样的问题,经过几次尝试后我发现将asp模式改为集成管道有帮助。

答案 3 :(得分:1)

如果您使用的是IIS7,请不要忘记在web.config文件的system.webServer部分添加以下行

<system.webServer>
<modules runAllManagedModulesForAllRequests=”true”>
<add name=”UrlRewriter” type=”Intelligencia.UrlRewriter.RewriterHttpModule” />
</modules>
<validation validateIntegratedModeConfiguration=”false” />
</system.webServer>

http://frozengraphics.wordpress.com/2009/12/06/intelligencia-urlrewriter-and-iis7/