2009-03-05 5 views
15

Nous avons hérité d'une application qui utilise le module Intelligencia.UrlRewriter. Notre environnement est cependant IIS7. Nous avons déjà configuré notre site pour qu'il fonctionne dans le pool d'applications classique asp.net (qui fonctionne efficacement pour beaucoup de ces types de problèmes). Cependant, les URL de notre application ne sont toujours pas réécrites.Peut Intelligencia.UrlRewriter être fait pour fonctionner dans IIS7?

Quelqu'un a-t-il rencontré ce problème?

Répondre

1

Oui, j'ai eu exactement le même problème avec le module Intelligencia.UrlRewriter, fonctionnant sous Win Vista & IIS7, mais le passage au pool d'applications classique asp.net a résolu le problème. Courez-vous l'application dans un nouveau répertoire virtuel? Cela peut parfois jouer avec le chemin de la racine à l'application qui pourrait faire une différence aux règles dans le web.config

21

Vous devez définir la configuration sur l'élément system.webServer, comme:

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

Vous pouvez garder les deux config. Ce que vous avez sans doute est maintenant:

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

Vérifiez la section "Migration d'applications ASP.NET à IIS 7.0 intégré mod" sur http://learn.iis.net/page.aspx/243/aspnet-integration-with-iis7/

ps. Je l'ai utilisé sans problème du tout, aussi longtemps que cette configuration est

Mise à jour 1:. Vérifiez également http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx, en particulier « Approche 3: Utilisation d'un HttpModule à Perform Extension-Less URL Rewriting avec IIS7 » , puisque la config j'ai ajouté a la config extension-moins.

+0

Freddy, je a donné un coup de feu mais cela n'a pas fonctionné. Je pense que IIS7 n'aime pas que l'URL (ex: gallery/view/1) soit sans extension. Est-ce que regex peut réparer ça? Voici la version actuelle:

+0

hmm, je n'ai pas utilisé ce style de config, le mien ressemble à ceci: eglasius

+0

Je n'ai pas de paramètres de requête supplémentaires, et d'autres choses cependant. En tout cas je l'essayerais d'abord avec une version simple, pour exclure n'importe quoi avec cette config. – eglasius

1

J'ai repéré le même problème, après quelques essais, j'ai découvert que le changement de mode asp à pipeline intégré aidé.

+0

J'ai aussi la situation où il fonctionne en mode intégré, mais pas en mode classique. –

1

Ne pas oublier d'ajouter les lignes suivantes dans la section system.webServer de votre fichier web.config si vous utilisez IIS7

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

Comme dans

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