Ich habe eine Webanwendung, die auf Windows 8.1, .NET 4.5.1, IIS 8.5 (unter Integrated AppPool), Visual Studio 2013 über die Standardvorlage entwickelt wird, die ASP.NET Identity, Owin usw. enthält, und lokal funktioniert es gut.
Dann habe ich es auf einen Windows Server 2008 mit IIS 7.5 (Integrated Pipeline) Host hochgeladen und ich bekomme:
Dieser Vorgang erfordert den integrierten IIS-Pipelinemodus.
Ausnahme Details: System.PlatformNotSupportedException: Für diesen Vorgang ist der integrierte IIS-Pipelinemodus erforderlich.
Stack Trace:
[PlatformNotSupportedException: Für diesen Vorgang ist der integrierte IIS-Pipelinemodus erforderlich]. 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 e, AsyncCallback cb, Object extradata) +265 System.Web.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +285 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +155
Ich kann nichts finden, außer der Anweisung, die Pipeline vom klassischen Modus in den integrierten Modus zu ändern, was ich bereits ohne Erfolg getan habe.
Was kann ich tun, um das Problem zu beheben? Mag "Microsoft.Owin.Host.SystemWeb" nicht IIS 7.5 oder so?
Ihr Anwendungspool ist im klassischen Modus, aber Ihre Anwendung benötigt den integrierten Modus, um zu funktionieren:
Öffnen Sie den IIS-Manager
Anwendungspool
Wählen Sie den Pool aus, in dem Ihre Anwendung ausgeführt werden soll
Wählen Sie im rechten Bereich die Option Grundeinstellung
Verwalten Sie den Pipeline-Modus und wechseln Sie zu Integriert
Dies war ein seltsames Problem, da meine Hosts IIS shouldn't beschweren, dass es integrierte Pipeline-Modus erfordert, wenn es bereits in diesem Modus ist, wie ich in meiner Frage als angegeben:
Ich habe viel gesucht und nicht in der Lage, etwas zu finden, außer für die Verweisung des Lesers, um die Pipeline aus dem klassischen Modus in den integrierten Modus zu ändern, dass welche ich bereits mit kein Glück.
Unter Verwendung von Levi's Anweisungen, habe ich und <%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %>
* auf einer leeren aspx-Seite und teilte meinem Hoster mit, was los ist, und bat ihn, das Problem zu beheben und es anhand der von mir hochgeladenen Seite zu bestätigen... Ich habe sehr oft überprüft, ob sich am Zustand der Seite etwas geändert hat, und ich kann sehen, dass sie 3-4 Stunden gebraucht haben, um das Problem zu lösen...<%: System.Web.Hosting.HttpRuntime.IISVersion %>
Als ich fragte, was sie getan haben, um das Problem zu lösen, war ihre Antwort eine Art von 'klassifiziert', da sie sagten:
Unser Team hat die erforderlichen Änderungen auf dem Server vorgenommen
Das Problem lag ausschließlich bei meinem Hoster.
Update: Wie Ben in den Kommentaren schreibt
<%: System.Web.Hosting.HttpRuntime.UsingIntegratedPipeline %>
und<%: System.Web.Hosting.HttpRuntime.IISVersion %>
sind nicht mehr gültig und lauten jetzt:
Der Weg, dieses Problem zu beheben, ist nicht innerhalb von IIS. Ich habe versucht, meine Anwendung innerhalb von IIS Express in Visual Studio auszuführen. Ich habe das Internet durchsucht und in einigen Artikeln wurde empfohlen, ein Identitäts-Tag
Ich konnte dieses Problem lösen, indem ich auf die Projektdatei klickte und zu den Eigenschaften ging. Unter verwaltete Pipeline änderte ich den Eigenschaftswert von klassisch auf integriert.
Damit war mein Problem gelöst.