2008-11-21 7 views
1

J'ai un gros problème avec l'URL de réécriture pour IIS 7.0.Rewritepath et le mode intégré IIS

J'ai écrit un module simple pour réécrire pour mon application web NET3.5/IIS7. Voici une partie du code.

public void Init(HttpApplication context) 
    { 
     context.BeginRequest += new EventHandler(context_BeginRequest); 
    } 

    void context_BeginRequest(object sender, EventArgs e) 
    { 
     HttpApplication app = sender as HttpApplication; 
     if (app.Request.Path.Contains("pagetorewrite.aspx")) 
      HttpContext.Current.RewritePath("~/otherpage.aspx"); 
    } 

Et j'enregistrer mon module dans web.config:

<system.webServer> 
<validation validateIntegratedModeConfiguration="false"/> 
<modules> 
       <add name="MyModule" type="MyModule" preCondition="" /> 

sous IIS 7.0 (Vista) en utilisant ASP classique Pipeline il fonctionne parfaitement, mais quand je change de mode pipeline intégré, il arrête travail. Il n'y a aucune exception, erreur et rien dans le débogueur/events/logfiles - message seulement dans un navigateur cette page n'a pas été trouvée. La chose la plus stridente est que pagename ressemble à mal orthographié ou fusionné à partir de parties de la page d'origine et réécrire à la page.

J'ai déployé mon code sur un autre ordinateur (également Vista - mais x64 et iis 7.0) et il fonctionne parfaitement dans les deux modes. Il semble qu'il y ait un problème de configuration ou quoi?

Répondre

0

Juste une supposition: Qualifiez votre type avec le nom d'assemblage (type = "MyModule, MyAssembly")

Questions connexes