Microsoft.Owin.Host.SystemWeb und immer noch Es wurde kein owin.Environment-Element im Kontext gefunden

8

Ich habe viele Beiträge dazu gelesen, kann aber immer noch nicht funktionieren. Ich benutze Visual Studio 2013. Ich habe ein neues MVC 5-Projekt erstellt und dachte mir, dass es cool wäre, die neue Facebook-Login-Integration zu verwenden. Es funktioniert gut auf meinem PC in IIS Express.

Aber wenn ich es auf den Production Server hochlade, bekomme ich immer die sehr nervige Meldung "No owin.Environment item wurde im Kontext gefunden".

Hier ist was ich getan habe.

  1. Ich habe den Namen meines Projekts oder meiner Assembly nie geändert.
  2. Der Assemblyname lautet Wodrivate
  3. Der Namensraum ist Wodrivate
  4. Ich habe die Standard-Startup.cs-Klasse, die Folgendes enthält:

    %Vor%
  5. In der App_Start gibt es eine Startup.Auth.cs-Datei, die enthält:

    %Vor%
  6. Meine Web.config-Datei enthält:

    %Vor%
  7. Ich habe auch darauf geachtet, dem Beitrag auf Es wurde kein owin.Environment-Element im Kontext gefunden - nur auf dem Server und das installierte Microsoft.Owin.Host.SystemWeb

Sonst ist noch jemand dran geblieben? Ich habe 3 Tage lang eine Wand geschlagen.

    
user3562747 24.04.2014, 17:44
quelle

7 Antworten

3

Ich brauchte eine andere web.config-Änderung, um das Problem zu lösen:

%Vor%

Obwohl davon ausgegangen wird, dass , wird von dieser Einstellung abgeraten Ich habe es versucht:

%Vor%

aber das gab mir den Fehler:

"Die Operation ist aufgrund des aktuellen Status des Objekts nicht gültig"

und ich bin mir nicht sicher, was dort gerade passiert, ob es das falsche Modul oder etwas anderes ist.

    
Breandán 23.05.2014 16:29
quelle
3

Haben Sie versucht, so etwas zu tun?

%Vor%     
Eyal Solnik 19.08.2014 17:14
quelle
2

Ich hatte das gleiche Problem und es wurde von IIS-Einstellungen verursacht.

Meine IIS-Bereitstellung hatte eine Top-Level-Site mit mehreren Anwendungen darunter. Sie sollten sicherstellen, dass die "Anwendungseinstellungen" Ihrer Site-Ebene nicht mit denen Ihrer Anwendung in Konflikt stehen.

In meinem Fall hatte ich "owin: AutomaticAppStartup = false" auf der Site-Ebene, die von meiner Anwendung geerbt wurde.

Zusammenfassung:

  1. Öffnen Sie den IIS-Manager
  2. Wählen Sie Server - & gt; Anwendungseinstellungen. Stellen Sie sicher, dass auf dieser Ebene keine Konflikte bestehen.
  3. Wählen Sie Site - & gt; Anwendungseinstellungen. Stellen Sie sicher, dass auf dieser Ebene keine Konflikte bestehen.

Bearbeiten: Ich habe festgestellt, dass Sie einfach die folgende appSetting in web.config hinzufügen können, um mögliche erbliche Konflikte zu überschreiben. Ich würde empfehlen, zu verstehen, ob es zuerst Konflikte gibt, damit Sie eine fundierte Änderung vornehmen können.

%Vor%     
Scott Lin 01.10.2014 20:24
quelle
1

Haben Sie den Modus des App-Pools überprüft? OWIN arbeitet mit dem integrierten Modus des App-Pools. Es funktioniert nicht im klassischen Modus.

    
Pankaj Kapare 30.12.2014 20:37
quelle
1

Wenn Sie die Ausnahme "No owin.Environment item wurde im Kontext gefunden." von Request.GetOwinContext () bedeutet dies normalerweise, dass die Erkennung der OWIN-Startup-Klasse fehlgeschlagen ist.

Stellen Sie sicher, dass IIS den Code in Startup.cs (im Stammordner) beim Start ausführt. Um zu überprüfen, ob es auf einem Produktionsserver funktioniert, würde ich Folgendes empfehlen. 1) Fügen Sie die folgende Zeile ein:

%Vor%

2) Rufen Sie das DebugView-Dienstprogramm von hier auf: Ссылка

3) Führen Sie DbgView.exe als Administrator aus und stellen Sie sicher, dass die Option "Capture / Capture Global Win32" aktiviert ist.

4) Beim Starten von IIS sollte eine Ablaufverfolgungsmeldung aus dem obigen Code angezeigt werden (stellen Sie sicher, dass sie durch Berühren von web.config neu gestartet wird).

5) Wenn es nicht ausgeführt wird, klicken Sie hier: Ссылка

Es gibt eine Reihe von Gründen, warum es nicht ausgeführt wird. Viele von ihnen sind auf Stackoverflow. Eine weitere, die ich hinzufügen werde ist diese: Stellen Sie sicher, dass Sie nicht die Einstellung "Batch = false" auf dem "Kompilierungsknoten" von web.config haben.

    
Harry Kakoulidis 12.07.2015 21:15
quelle
0

Ich habe damit für Tage gekämpft !! Versuchte alles in jedem Beitrag, den ich finden konnte, und das behob das Problem. Ich habe in VS 2013 entwickelt und auf einer Server 2008-VM veröffentlicht, und ich erhielt immer die gleiche Nachricht "No owin.Environment-Element wurde im Kontext gefunden".

Ich habe diesen Eintrag in Web-Konfiguration für Module und es repariert es. Ich bin mir nicht sicher, ob ich verstehe, warum es es repariert hat, aber es hat es getan.

%Vor%     
Rusty 07.07.2015 15:30
quelle
0

Was passiert, ist, dass Ihr BIN die Referenz nicht enthält. In den Einstellungen ändern Sie es auf "Copy Local" auf TRUE. dann veröffentlichen Sie es erneut.

    
user1731957 24.03.2015 09:17
quelle

Tags und Links