2017-12-20 1 views
4

Nachdem ich mein MyModule Modul aus der Datei web.config entfernt habe, funktioniert die rewrite wie erwartet. Wenn das Modul MyModule wieder in die Datei web.config eingefügt wird, funktioniert das Modul MyModule wie erwartet , aber rewrite tritt nicht auf.Warum wird beim Registrieren eines Moduls das Neuschreiben deaktiviert?

web.config:

<system.webServer> 
    <rewrite> 
     <rules> 
     <rule name="rule_name" patternSyntax="ECMAScript" stopProcessing="true"> 
      <match url="(.*)" /> 
      <action type="Rewrite" url="http://localhost:7789/example/api/values" /> 
     </rule> 
     </rules> 
    </rewrite> 
    <modules> 
     <remove name="MyModule" /> 
     <add name="MyModule" type="My.Models.MyModule, Project1" /> 
    </modules> 
    ... 

RewriteModule.cs:

namespace My.Models 
{ 
    public class MyModule: IHttpModule 
    { 
     public void Init(HttpApplication context) 
     { 
      context.BeginRequest += Context_BeginRequest; 
     } 
     public void Dispose() 
     { 

     } 
     private void Context_BeginRequest(object sender, EventArgs e) 
     { 
      // something is written here.... 
     } 
    } 
} 
+0

Von oben mein Kopf, das erste Modul auf eine Anfrage zu reagieren, wird die letzte sein. Wenn Ihr Modul also auf die Anfrage reagiert, wird das Rewrite-Modul nicht aufgerufen. – CodeCaster

+0

Und was macht Ihr Modul genau? Oder ist es reproduzierbar mit leerem Modul, das Sie in Frage gestellt haben? – Evk

+0

@CodeCaster Wie kann ich das 'rewritemodule' und' MyModule' zusammenarbeiten lassen? –

Antwort

0

Innerhalb der web.config - Die name des Moduls an der type betragen muss (bis zum , in der type):

Änderung von:

<modules> 
    <remove name="MyModule" /> 
    <add name="MyModule" type="My.Models.MyModule, Project1" /> 
</modules> 

Wechseln zu:

<modules> 
    <remove name="My.Models.MyModule" /> 
    <add name="MyModule" type="My.Models.MyModule, Project1" /> 
</modules> 
Verwandte Themen