J'utilise IIS6, j'ai écrit un HttpModule et j'ai cette erreur? Après avoir cherché sur le web, je trouve que ce problème est causé par le .NET Framework 3.5, donc je l'ai mis sur une machine où je n'ai pas installé .NET 3.5, mais le problème est toujours là!IIS6 + HttpModule: Cette opération nécessite le mode de pipeline intégré IIS
Répondre
Seul IIS7 prend en charge le pipeline intégré. Sur IIS7, un module HttpModule peut participer à toutes les demandes arrivant sur le serveur Web, pas uniquement celles qui ciblent des extensions de fichier spécifiques. II6 utilise ce que IIS7 appelle le pipeline classique où un module HttpModules ne peut être impliqué que lorsque le pipeline ISAPI antérieur détermine que le mappage de script nécessite que la requête soit transmise à ASP.NET.
Ma tentative de débogage psychique: vous utilisez une déclaration comme:
Response.Headers("X-Foo") = "bar"
Si tel est le cas, la modification de ce comme indiqué ci-dessous va contourner le problème:
Response.AddHeader("X-Foo", "bar")
Est-ce que 'response.Headers.Location = new Uri (...);' casse IIS6 et donne 500 'Internal Server Error'? – Blaise
Je suis juste tombé sur ce problème. En utilisant IIS6 et .NET 3.5. Correction pour moi était d'utiliser Response.AddHeader
au lieu de Response.Headers.Add
. HTH.
Inspiré par d'autres réponses, j'ai trouvé qu'il est l'accès au Response.Headers
objet qui provoque l'exception « opération nécessite IIS intégré en mode pipeline ».
Évitez .Headers
et appeler d'autres fonctions d'aide (anciens?) Comme: (! Dans mon cas)
Response.AddHeader()
etResponse.ClearHeaders()
Pourriez-vous préciser ce que votre module est en train de faire? – AnthonyWJones
vérifiez si le mot de passe de l'utilisateur est expiré puis forcez-le à le changer. – sdhjl2000
Vous devez fournir le code indiquant où l'erreur se produit. –