Ich habe eine Webanwendung, die unter Windows 8.1 entwickelt wird. .Net 4.5.1, IIS 8.5 (unter Integrated AppPool), Visual Studio 2013 Über der Standardvorlage, die asp.net Identity, Owin usw. enthält vor Ort funktioniert gut.
Dann habe ich es auf einen Windows Server 2008 hochgeladen und IIS 7.5 (Integrated Pipeline) Host und ich erhalte:
Für diesen Vorgang ist IIS der integrierte Pipeline-Modus erforderlich.
Ausnahmedetails:System.PlatformNotSupportedException: Diese Der Betrieb erfordert IIS einen integrierten Pipeline-Modus.
Stack-Trace:
[PlatformNotSupportedException: Diese Operation erfordert IIS integrierter Pipeline-Modus.] 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 Anwendung) +246 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContext.PrepareInitialContext (HttpApplication Anwendung) +15 Microsoft.Owin.Host.SystemWeb.IntegratedPipeline.IntegratedPipelineContextStage.BeginEvent (Object Sender, EventArgs e, AsyncCallback cb, Objekt-Extradaten) +265 System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute () +285 System.Web.HttpApplication.ExecuteStep (Schritt IExecutionStep, Boolean und completeSynchronously) +155
Ich habe viel gesucht und konnte nichts finden, außer den Leser anzuweisen, die Pipeline vom klassischen Modus in den integrierten Modus umzustellen, was ich bereits ohne Erfolg getan habe.
Was kann ich tun, um das Problem zu beheben? Ist "Microsoft.Owin.Host.SystemWeb" nicht wie IIS 7.5 oder Server 2008 oder ich :)?
Dies war ein seltsames Problem, da sich meine Hosts IIS nicht darüber beklagen sollten, dass ein integrierter Pipeline-Modus erforderlich ist, wenn sie sich bereits in diesem Modus befinden, wie in meiner Frage angegeben:
Ich habe viel gesucht und konnte nichts finden, außer dass ich den Leser angewiesen habe, die Pipeline vom klassischen Modus in den integrierten Modus zu ändern , was ich bereits ohne Glück getan habe ..
Ich benutze Levi's Richtungen und <%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %>
* auf einer leeren ASPX-Seite und teilte meinem Host mit, was los ist, und bat ihn, das Problem zu beheben und das Problem auf der von mir hochgeladenen Seite zu bestätigen dass sie 3-4 Stunden gekämpft haben, um es zu lösen ...<%: System.Web.Hosting.HttpRuntime.IISVersion %>
Als ich sie fragte, was sie getan hätten, um das Problem zu lösen, lautete ihre Antwort „klassifiziert“, da sie sagten:
Unser Team hat die erforderlichen Änderungen auf dem Server vorgenommen
Das Problem war alles mit meinem Gastgeber.
* Update: Wie Ben in den Kommentaren angegeben
<%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %>
Und<%: System.Web.Hosting.HttpRuntime.IISVersion %>
sind nicht mehr gültig und sie sind jetzt:
Ihr Anwendungspool befindet sich im klassischen Modus, aber für Ihre Anwendung muss der integrierte Modus aktiviert werden. Ändern Sie es in den integrierten Modus:
Öffnen IIS Manager
Anwendungspool
Wählen Sie den Pool aus, in dem Ihre App ausgeführt wird
Im rechten Bereich wählen Sie Grundeinstellung
Pipeline-Modus verwalten zu Integriert wechseln
Für alle, die hierher kommen, wenn Sie nach diesem Fehler suchen, versuchen Sie, Response.AddHeader
anstelle von Response.Headers.Add()
zu verwenden.
Ich hatte das gleiche Problem und konnte folgende Aufgaben lösen:
Gehen Sie zu Visual Studio Project properties
.
Wählen Sie Web
Tab.
Use Local IIS Web server
auswählen
Use IIS Express
überprüfen
Alle diese Antworten haben bei mir nicht funktioniert.
Problemdetails: Beim Versuch, meine Anwendung (entwickelt mit Visual Studio und Verwendung der mit der Veröffentlichungsoption erstellten Ordnerstruktur) auf einem Remoteserver bereitzustellen, wurde derselbe Fehler wie in der Frage erwähnt .
Dieses Problem blieb nach dem Ausprobieren der obigen Lösungen bestehen. Dieser Fehler bedeutet, dass sich der Anwendungspool, zu dem Ihre implementierte Anwendung gehört, nicht im integrierten Modus befindet.
Lösung:
Es klappt!
Für Visual Studio 2012 while Debugging Dieser Fehler ist aufgetreten
Website-Menü -> Verwenden Sie IIS Express habe es für mich getan
Ich habe dieses Problem durch folgende Schritte gelöst:
vielleicht hilft es dir dabei.
Das Problem kann nicht in IIS behoben werden. Ich habe versucht, meine Anwendung innerhalb von IIS Express in Visual Studio auszuführen. Ich durchsuchte das Web und in einigen Artikeln wurde gesagt, dem system.web-Tag ein Identifizierungs-Tag hinzuzufügen. Dies ist nicht der richtige Weg.
Ich konnte dieses Problem lösen, indem ich auf die Projektdatei klickte und zu den Eigenschaften .. ging. Unter Managed Pipeline änderte ich den Eigenschaftswert von klassisch auf integriert.
Das hat mein Problem gelöst.
Diejenigen, die VS2012 verwenden
Springen Sie zu Projekt> Eigenschaften> Web
Aktivieren Sie Use Local IIS Web Server
Aktivieren Sie die Option Use IIS Express
Projekt-URL http: // localhost: PORT/
GitHub Lösung löste das Problem für mich durch Hinzufügen