Why does registering a module disable rewriting?

After removing my module MyModulefrom the web.config file, it rewriteworks as expected. When you add the module MyModuleback to the web.config file, the module MyModuleworks as expected, but rewritedoes not occur.

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....
        }
    }
}
+4
source share
1 answer

Inside web.config. The namemodule module must be equal type(to ,c type):

Edit:

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

Change to:

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

Source: https://habr.com/ru/post/1691100/


All Articles