web-dev-qa-db-fra.com

"Cette opération nécessite IIS mode pipeline intégré. "

J'ai une application Web en cours de développement sous Windows 8.1, .net 4.5.1, IIS 8.5 (sous Integrated AppPool), Visual Studio 2013 sur le modèle par défaut comprenant asp.net Identity, Owin, etc. et fonctionne localement. bien.

Ensuite, je l'ai transféré sur un hôte Windows Server 2008 et IIS 7.5 (Pipeline intégré) et je reçois:

Cette opération nécessite le mode de pipeline intégré IIS.

Détails de l'exception:System.PlatformNotSupportedException: This l'opération nécessite le mode de pipeline intégré IIS.

Trace de la pile:

[PlatformNotSupportedException: cette opération nécessite IIS mode pipeline intégré.] System.Web.HttpResponse.get_Headers () +9687046 System.Web.HttpResponseWrapper.get_Headers () +9 Microsoft.Owin.Host.SystemWeb.OwinCallContext.CreateEnvironment () +309 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.GetInitialEnvironment (HttpApplication Application) +246 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.PrepareInitialContext (HttpApplication Application) +15 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContextStage.BeginEvent (Object Sender, EventArgs, AsyncCallback cb, Object extradata) +265 System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +285 System.Web.HttpApplication.ExecuteStep (étape IExecutionStep, Boolean & completedSynchronously) +155

J'ai beaucoup cherché et je suis incapable de trouver quoi que ce soit, sauf pour demander au lecteur de changer le pipeline du mode classique au mode intégré, ce que j'ai déjà fait sans succès.

Que puis-je faire pour résoudre le problème? "Microsoft.Owin.Host.SystemWeb" ne ressemble-t-il pas à IIS 7.5, au serveur 2008 ou à moi :)?

48
wooer

My bad !, tu as raison Lex Je dois l'avoir fait au lieu de dire que j'ai résolu le problème en commentaire .. 

C'était un problème étrange, car mes hôtes IIS ne devraient pas se plaindre du fait qu'il nécessite le mode de pipeline intégré alors qu'il est déjà dans ce mode, comme je l'ai indiqué dans ma question: 

J'ai beaucoup cherché et je suis incapable de trouver quoi que ce soit, si ce n'est de demander au lecteur de passer du mode classique au mode intégré que j'ai déjà fait sans succès.

Utilisation des directives Levi's que je mets <%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %> et <%: System.Web.Hosting.HttpRuntime.IISVersion %> sur une page aspx vide et a dit à mon hôte ce qui se passait et leur a demandé de résoudre le problème et de confirmer le problème à l'aide de la page que j'ai téléchargée ... J'ai souvent vérifié si quelque chose avait changé à l'état de la page et je peux voir que ils ont lutté 3-4 heures pour le résoudre ... 

Quand j'ai demandé ce qu'ils avaient fait pour résoudre le problème, leur réponse était un peu "classifiée", puisqu'ils ont dit: 

Notre équipe a effectué les modifications requises sur le serveur.

J'ai souri et passé. Donc, le problème était tout avec mon hôte. Merci pour toutes les réponses.

Mise à jour: As Ben indiqué dans les commentaires

  1. <%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %> et 
  2. <%: System.Web.Hosting.HttpRuntime.IISVersion %>

ne sont plus valides et ils sont maintenant:

  1. <%: System.Web.HttpRuntime.UsingIntegratedPipeline %> et 
  2. <%: System.Web.HttpRuntime.IISVersion %>
5
wooer

Votre pool d'applications est en mode classique, mais votre application a besoin du mode intégré pour se déclencher. changez-le en mode intégré:

  1. Ouvrir le gestionnaire IIS

  2. Pool d'applications

  3. Sélectionnez le pool dans lequel votre application est exécutée

  4. Dans le panneau de droite, sélectionnez Basic Setting

  5. Gérer le passage en mode pipeline sur Intégré

48
Mohammadreza

Pour ceux qui arrivent ici après avoir recherché cette erreur, essayez d'utiliser Response.AddHeader au lieu de Response.Headers.Add()

43
billpg

J'avais le même problème et j'ai résolu les problèmes suivants:

  1. Accédez au studio visuel Project properties

  2. Sélectionnez Web Tab.

  3. Sélectionnez Use Local IIS Web server 

  4. Vérifier Use IIS Express

33
kakon

Toutes ces réponses n'ont pas fonctionné pour moi.

Détails du problème: J'obtenais la même erreur que celle mentionnée dans la question lorsque je tentais de déployer mon application (développée à l'aide de visual studio et déployée à l'aide de la structure de dossiers créée par l'option de publication) sur un serveur distant. .

Ce problème persistait après avoir essayé les solutions ci-dessus. Cette erreur signifie que le pool d'applications auquel appartient votre application déployée n'est pas en mode intégré.

Solution:

  1. Créez un nouveau pool d'applications avec la version .NET 4 sélectionnée et le mode Pipeline géré en tant que Integrated .
  2. Changez le pool d'applications de votre application par celui créé ci-dessus et essayez maintenant.

Ça marche!

6
Yogitha Mahadasu

Pour Visual Studio 2012 while débogage cette erreur s'est produite

Menu du site Web -> Utiliser IIS Express l’a fait pour moi 

4
Avinash

J'ai résolu ce problème en procédant comme suit:

  1. Faites un clic droit sur le dossier racine du projet.
  2. Goto propriétés
  3. Cliquez sur le web dans le menu de gauche
  4. change le port actuel http: // localhost: ####/
  5. cliquez sur créer un répertoire virtuel
  6. Enregistrer les modifications (ctrl + s)
  7. Courir

peut-être que cela vous aide à.

4
Ravi Kumar Mistry

La façon de résoudre ce problème ne se trouve pas dans IIS. J'essayais d'exécuter mon application dans IIS Express dans Visual Studio. J'ai cherché sur le Web et certains articles disaient d'ajouter une balise d'identité à la balise system.web. Ce n'est pas la bonne façon. 

Pour résoudre ce problème, j’ai réussi à cliquer sur le fichier de projet et à accéder à propriétés . Dans le pipeline géré, j’ai modifié la valeur de la propriété de classic à intégrée.

Cela a résolu mon problème.

4
Tyrone Moodley

Ceux qui utilisent VS2012

Aller au projet> Propriétés> Web 

Cochez Utiliser le serveur Web local IIS

Cochez Utiliser IIS Express

URL du projet http: // localhost: PORT/

3
Techvalens

GitHub solution a résolu le problème pour moi en ajoutant

  • Global.asax.cs: Définissez AntiForgeryConfig.SuppressXFrameOptionsHeader = True; dans Application_Start:
  • Ajouter manuellement l'en-tête X-Frame-Options dans Application_BeginRequest
0
Thulasiram