4

J'ai créé un module personnalisé:Mon httpModule personnalisé n'est pas détecté avec MVC

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"); 
     } 
    } 
} 

Et je l'ai enregistré dans ma config web:

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

, il semble cependant jamais courir. Je soupçonnais que c'était un problème d'espace de noms, mais j'ai essayé toutes les combinaisons d'espaces de noms dans la section type= auxquels je peux penser et qui n'atteint jamais le point d'arrêt que j'ai mis dedans.

Des idées?

Répondre

1

Le problème est que la solution a été mis en place pour utiliser le développement Visual Studio Server, qui ne capte pas les modules http. Après que je l'ai changé pour utiliser mon IIS local, cela a fonctionné.

4

Vous avez raison, c'est votre espace de noms qui manque dans le type.

Ce qui suit a fonctionné pour moi:

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

Vous pouvez définir votre fonction à exécuter avant l'appel de la méthode Application_Start. Ajouter ci-dessous le code dans global.asax

[assemblage: PreApplicationStartMethod (typeof (CS.MVCHttpModule.MvcApplication), "Registre")]

Voir http://dotnetlionet.blogspot.in/2015_06_01_archive.html

Questions connexes