2009-03-05 4 views
15

Abbiamo ereditato un'applicazione che utilizza il modulo Intelligencia.UrlRewriter. Il nostro ambiente è IIS7. Abbiamo già impostato il nostro sito per l'esecuzione nel classico pool di applicazioni asp.net (che funziona in modo semplice per molti di questi tipi di problemi). Tuttavia, non vediamo ancora la riscrittura degli URL nella nostra app.È possibile far funzionare Intelligencia.UrlRewriter in IIS7?

Qualcuno si è imbattuto in questo?

risposta

1

Sì, ho avuto lo stesso identico problema con il modulo Intelligencia.UrlRewriter, in esecuzione su Win Vista & IIS7, tuttavia il passaggio al classico pool di app di ASP.net ha risolto il problema. Stai eseguendo l'app in una nuova directory virtuale? Che talvolta possono pasticciare con il percorso principale per l'applicazione che potrebbe fare la differenza per le regole nel web.config

21

È necessario definire la configurazione sull'elemento system.webServer, come:

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

È possibile mantenere entrambi i config. Quello che probabilmente hai ora è:

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

Controllare la sezione "Migrazione delle applicazioni ASP.NET per IIS 7.0 integrato mod" sul http://learn.iis.net/page.aspx/243/aspnet-integration-with-iis7/

ps. Sono stato con essa senza problemi a tutti, purché tale configurazione è in

Update 1:. Controllate anche http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx, particolarmente "Approccio 3: L'utilizzo di un HttpModule per eseguire Extension-Less URL Rewriting con IIS7" , dal momento che la configurazione che ho aggiunto ha la configurazione senza estensione.

+0

Freddy, ho ha dato un colpo ma non ha funzionato. Penso che a IIS7 non piaccia l'url (es: gallery/view/1) senza estensione. È possibile regex risolvere questo problema? Ecco la corrente:

+0

hmm, non ho usato quello stile di configurazione, il mio aspetto è questo: eglasius

+0

Non ho parametri di query aggiuntivi, e altre cose però. Ad ogni modo proverei prima con una versione semplice, per escludere qualsiasi cosa con quella configurazione. – eglasius

1

Ho individuato lo stesso problema, dopo alcuni tentativi ho scoperto che il passaggio dalla modalità ASP alla pipeline integrata ha aiutato.

+0

Ho anche la situazione in cui funziona in modalità integrata ma non in modalità classica. –

1

Non dimenticate di aggiungere le seguenti righe nella sezione system.webServer del file web.config se si utilizza IIS7

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

Come in

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