2009-03-05 4 views
15

Wir haben eine Anwendung geerbt, die das Intelligcia.UrlRewriter-Modul verwendet. Unsere Umgebung ist jedoch IIS7. Wir haben unsere Website bereits so eingerichtet, dass sie im klassischen asp.net-Anwendungspool ausgeführt wird (was genau für viele dieser Probleme funktioniert). Die URLs in unserer App werden jedoch immer noch nicht neu geschrieben.Kann Intelligenzia.UrlRewriter in IIS7 arbeiten?

Hat jemand in das hineingeraten?

Antwort

1

Ja hatte ich das exakt gleiche Problem mit Intelligcia.UrlRewriter-Modul, unter Win Vista & IIS7 ausgeführt, jedoch die Umstellung auf den klassischen asp.net App-Pool hat das Problem behoben. Führen Sie die App in einem neuen virtuellen Verzeichnis aus? Das kann manchmal Chaos mit dem Root-Pfad der Anwendung, die einen Unterschied zu den Regeln in der web.config machen könnte

21

Sie müssen die Config auf dem system.webServer Element definieren, wie:

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

Sie können beide Konfigurationen beibehalten. Was haben Sie wahrscheinlich jetzt:

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

Überprüfen Sie den Abschnitt "Migrieren von ASP.NET-Anwendungen auf IIS 7.0 Integrierte mod" auf http://learn.iis.net/page.aspx/243/aspnet-integration-with-iis7/

ps. Ich habe mit ihm überhaupt ohne Probleme, solange die config in ist

Update 1:. Auch http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx überprüfen, vor allem „Ansatz 3: ein Httpmodule verwenden Perform Erweiterungs-Less URL Rewriting mit IIS7“ , da die von mir hinzugefügte Konfiguration die konfigurationsfreie Konfiguration hat.

+0

Freddy, ich gab einen Schuss, aber es hat nicht funktioniert. Ich denke, IIS7 mag die URL (ex: gallery/view/1) nicht extensionless. Kann Regex das beheben? Hier ist aktuell:

+0

hmm, ich habe diese Art von config nicht benutzt, meine sieht so aus: eglasius

+0

Ich habe keine zusätzlichen Abfrageparameter und andere Sachen. Jedenfalls würde ich es zuerst mit einer einfachen Version versuchen, um irgendetwas mit dieser Konfiguration auszuschließen. – eglasius

1

Ich habe das gleiche Problem entdeckt, nach ein paar Versuchen habe ich herausgefunden, dass ASP-Modus zu integrierten Pipeline zu ändern geholfen.

+0

Ich habe auch die Situation, wo es im integrierten Modus funktioniert, aber nicht im klassischen Modus. –

1

Vergessen Sie nicht, die folgenden Zeilen in dem system.webServer Abschnitt Ihrer web.config-Datei hinzufügen, wenn Sie IIS7 verwenden

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

Wie in

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