我已经创建了一个自定义模块:
namespace KittenFarm.ServerModules
{
public class CustomServerHeaderModule : IHttpModule
{
public void Init(HttpApplication context)
{
context.PreSendRequestHeaders += OnPreSendRequestHeaders;
}
public void Dispose()
{ }
void OnPreSendRequestHeaders(object sender, EventArgs e)
{
HttpContext.Current.Response.Headers.Remove("Server");
}
}
}
我已经在我的网络配置中注册了它:
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
<add name="CustomServerHeader" type="CustomServerHeaderModule" />
</modules>
....
然而,它似乎永远不会运行。
我怀疑这是一个命名空间问题,但是我已经尝试了type=
部分中我可以想到的每个命名空间组合,并且它从未达到我放入的断点。
有什么想法吗?
答案 0 :(得分:4)
你是对的,这个类型中缺少你的命名空间。
以下对我有用:
<modules runAllManagedModulesForAllRequests="true">
<add name="CustomServerHeader" type="KittenFarm.ServerModules.CustomServerHeaderModule" />
</modules>
答案 1 :(得分:1)
问题是该解决方案设置为使用Visual Studio开发服务器,该服务器不接收http模块。我改变它以使用我的本地IIS后,它工作。
答案 2 :(得分:0)
您可以将函数设置为在调用Application_Start方法之前运行。在global.asax中添加以下代码
[组件:PreApplicationStartMethod(typeof运算(CS.MVCHttpModule.MvcApplication), “注册”)]