it-swarm.com.de

Es wurde kein owin.Environment-Element im Kontext gefunden

Microsoft vor kurzem eingeführt neue ASP.NET-Identität - Ersatz für alte (einfache) Mitgliedschaft. Leider kann ich dieses neue Mitgliedschaftssystem in meinem alten Projekt nicht verwenden, da es System.InvalidOperationException auslöst: Im Kontext wurde kein owin.Environment-Element gefunden. Dies ist ein bekannter Fehler , aber Microsoft schweigt über dieses Problem. Der einfachste Weg, diesen Fehler zu reproduzieren - es ist das Erstellen einer neuen Webanwendung (MVC, WebForms oder WebApi - egal) in VS 2013 (mit Web Tools 2013 Preview Refresh) und dann zur Anmeldeseite. Es wird klappen. Dann ändern Sie den Namespace in Ihrer Anwendung in einen anderen Namen als den ursprünglichen Namespace. Wenn Sie den Namespace wieder in das Original ändern (das Sie beim Erstellen eines Projekts verwendet haben), wird dieses Problem behoben. 

Es sieht aus wie .net speichert irgendwo etwas, das mit dem ursprünglichen Namespace zusammenhängt, aber ich kann nicht finden, was und wo, es befindet sich nicht im Projektordner. Ich weiß, dass Stackoverflow kein Platz für Fehlerberichte ist. Ich hoffe nur, dass jemand bereits eine Lösung für dieses Problem gefunden hat, oder vielleicht werden die an der Entwicklung von ASP.NET Identity beteiligten Personen dies bemerken.

27
graycrow

Höchstwahrscheinlich kann die OWIN-Startklasse nicht gefunden werden. Die Standardkonvention für die Startklasse ist [AssemblyName] .Startup. Wenn Sie dieser Konvention nicht mehr folgen, müssen Sie den vollständigen Namen Ihrer Startup-Klasse in der Web.Config ..__ angeben.

Die nächste Version des Microsoft.Owin.Host.SystemWeb-Pakets löst jetzt detaillierte Ausnahmemeldungen aus, wenn die Startklasse nicht gefunden wird. 

26
pranav rastogi

Ich habe zwei neue Projekte mit den Namen TesteMvc5.2 und TesteMvc5.0 erstellt, die beide beim Start nicht funktionierten

dies ist darauf zurückzuführen, dass sich der Standard-Namespace vom Assemblynamen unterscheidet Aber nachdem ich die Zeile gesetzt habe 

<add key="owin:AppStartup" value="TesteMvc5._2.Startup, TesteMvc5.2" />

in der web.config hat es gut funktioniert.

8
Luiz Bicalho

Ich hatte das gleiche Problem, es wurde behoben, nachdem sichergestellt wurde, dass sich diese Zeile in web.config befand:

<add key="owin:AutomaticAppStartup" value="true" />
6
cesar-moya

Ich hatte genau den gleichen Fehler, aber wie sich herausstellte, hatte ich ein anderes Konfigurationsproblem in meiner web.config. In meiner web.config fehlte das Attribut defaultLanguage = "c #" im Kompilierungselement unter system.web.

In diesem Fall wird VB voreingestellt. Wenn Sie also nicht Ihre Startup-Klasse in VB geschrieben haben, sollten Sie die Standardsprache in C # ändern.

Nicht richtig:

<compilation debug="true" optimizeCompilations="true" targetFramework="4.6.1">

Dies ist korrekt (es sei denn, Sie verwenden VB):

<compilation debug="true" defaultLanguage="c#" optimizeCompilations="true" targetFramework="4.6.1">
6
Drol

Ich habe alles probiert, was auf dieser Seite erwähnt wurde, aber nichts hat funktioniert. Dann erfuhr ich über eine Einstellung in IIS namens owin: AutomaticAppStartup. Sie finden es auf der Seite "Anwendungseinstellungen" des IIS - Managers für die Standardwebsite. Prüfen Sie, ob diese Einstellung wahr ist. Wenn nicht auf true gesetzt. Das hat bei mir funktioniert.

Auf dieser Website habe ich die Antwort gefunden: http://gotoanswer.stanford.edu/?q=Microsoft.Owin.Host.SystemWeb+and+still+getting+No+owin.Environment+item+ wurde + im + Kontext gefunden +

4
Ron Dow

Ich hatte das gleiche Problem. Ich habe es mit der web.config behoben.

Ich hatte jedoch den Assemblynamen und den Namespace geändert und den ursprünglichen Assemblynamen nicht mehr gefunden.

Ich stellte dann fest, dass das ursprüngliche Assembly nicht aus dem Papierkorb entfernt wurde.

Nach dem Löschen des Mülls konnte ich den OWIN-Eintrag web.config entfernen.

3
user2697956

Das Bereinigen von temporären ASP.NET-Dateien half mir bei diesem exakten Problem

2

Wenn Sie die untenstehende Konfiguration von MVC4 kopiert haben, sollten Sie sie aus der web.config entfernen

<add key="owin:AutomaticAppStartup" value="false" />
1
Mathi Rajan

Keine der obigen Antworten funktionierte für mich.

Es stellte sich heraus, dass bei meinem Projekt die Klasse "Startup" fehlte, die Folgendes enthielt:

using Microsoft.Owin;
using Owin;

[Assembly: OwinStartupAttribute(typeof(NAMESPACE.Startup))]
namespace NAMESPACE
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }
    }
}

Diese Datei mit dem Namen "Startup.cs" befindet sich im Stammordner (~ /) Ihres Projekts.

Meine "Web.config" hat keine dieser "Owin" -Konfiguration in den anderen Antworten.

0
Daniel

Hatte dasselbe Problem. Vielen Dank für die gemeinsam genutzten Lösungen. 

<add key="owin.AppStartup" value="Namespace.Startup, Namespace"/>
<add key="owin:AutomaticAppStartup" value="false"/>  

für mich behoben

0
Zia UsafXai

Ich habe keine Ahnung, warum das funktioniert, aber es hat funktioniert!

Mein Problem war in VS2013. In der Webkonfiguration wurde für debug der Wert true festgelegt, und ich habe diesen Fehler erhalten. Wenn ich es auf false gesetzt habe, hat es gut funktioniert und dann habe ich auf true zurückgesetzt und es funktionierte weiter OK!

Zuerst, wenn Debugging vor der Änderung auf "False" wahr war, habe ich einen Startpunkt in meinem StartUp-Code eingefügt, der überhaupt nicht erreicht wurde. Nach dem Ändern auf false wurde der StartUp-Code aufgerufen und das Programm funktioniert wie erwartet.

0
Dov Miller