Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net MVC未检测到我的自定义httpModule_Asp.net_Asp.net Mvc_Asp.net Mvc 3_Asp.net Mvc 4_Httpmodule - Fatal编程技术网

Asp.net MVC未检测到我的自定义httpModule

Asp.net MVC未检测到我的自定义httpModule,asp.net,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,httpmodule,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,Httpmodule,我创建了一个自定义模块: namespace KittenFarm.ServerModules { public class CustomServerHeaderModule : IHttpModule { public void Init(HttpApplication context) { context.PreSendRequestHeaders += OnPreSendRequestHeaders;

我创建了一个自定义模块:

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");
        }
    } 
}
我已经在我的web配置中注册了它:

<system.webServer>
    <validation validateIntegratedModeConfiguration="false"/>
    <modules runAllManagedModulesForAllRequests="true">
        <add name="CustomServerHeader" type="CustomServerHeaderModule" />
    </modules>
    ....

....
然而,它似乎从未运行过

我怀疑这是一个名称空间问题,但我已经尝试了我能想到的
type=
部分中名称空间的每一种组合,但它从未碰到我在其中设置的断点


有什么想法吗?

您是对的,类型中缺少的是您的命名空间

以下几点对我很有用:

   <modules runAllManagedModulesForAllRequests="true">
      <add name="CustomServerHeader" type="KittenFarm.ServerModules.CustomServerHeaderModule" />
   </modules>


问题在于解决方案设置为使用Visual Studio开发服务器,而该服务器不接收http模块。在我将其更改为使用我的本地IIS后,它工作了。

您可以将函数设置为在调用应用程序启动方法之前运行。在global.asax中添加以下代码

[汇编:预应用程序启动方法(typeof(CS.mvchttmodule.mvcapapplication),“寄存器”)]