从web.config文件中删除我的MyModule
模块后,rewrite
按预期工作。将MyModule
模块添加回web.config文件时,MyModule
模块按预期工作,但不会发生rewrite
。
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....
}
}
}
在web.config中 - 模块的name
必须等于type
(直到,
中的type
):
改变自:
<modules>
<remove name="MyModule" />
<add name="MyModule" type="My.Models.MyModule, Project1" />
</modules>
改成:
<modules>
<remove name="My.Models.MyModule" />
<add name="MyModule" type="My.Models.MyModule, Project1" />
</modules>