我已经定义了一个自定义HTTP处理程序来更新请求标头。但是当我打电话给http://localhost:52705/Home/Index时。我没有为该控制器调用我的自定义HTTP处理程序 - >行动要求。我实现如下
public class TestHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
return;
}
public bool IsReusable { get; private set; }
}
另外,找到HTTPHandler的web.cofing条目
<system.webServer>
<handlers>
<add name="TestHandler" type=" mvc_app.Handler.TestHandler" path="*" verb="*"/>
</handlers>
<modules>
<remove name="FormsAuthenticationModule" />
</modules>
</system.webServer>
答案 0 :(得分:1)
花了一天后如果发现一个技巧来实现我想用IHttpModule实现的相同功能
添加自定义HTTP模块
public class TestModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.BeginRequest += OnBeginRequest;
}
static void OnBeginRequest(object sender, EventArgs a)
{
Debug.WriteLine("OnBeginRequest Called MVC");
}
public void Dispose()
{
throw new NotImplementedException();
}
}
更新web.config以注册自定义HTTP模块
<system.webServer>
<modules>
<add name="TestModule" type="mvc_app.Handler.TestModule"/>
</modules>
</system.webServer>
对于上面的解决方案仍然,我试图找出为什么我的OnBeginRequest()方法被调用两次