Ich habe asp.net core 1.1 auf asp.net core 2 aktualisiert. Es läuft gut auf dem lokalen Server, aber wenn ich versuche, es in einer von Azure gehosteten Web-App bereitzustellen, habe ich den Fehler erhalten:
Beim Starten der Anwendung ist ein Fehler aufgetreten. .NET Core
4.6.00001.0 X86 v4.0.0.0 | Microsoft.AspNetCore.Hosting-Version 2.0.0-rtm-26452 | Microsoft Windows 6.2.9200
Irgendwelche Ideen?
Ich habe das Problem selbst gelöst und hoffe, dass diese Lösung jemandem helfen kann.
Erstens habe ich den Protokollordner auf dem Azure-Server festgelegt und finde ein Problem mit mehr Details ... Ich habe einige Datenbankänderungen in SQL vergessen. Aktualisieren Sie die Datenbankänderungen und führen Sie sie aus.
Fügen Sie in den App-Einstellungen Ihrer App ASPNETCORE_DETAILEDERRORS = true hinzu, starten Sie sie neu und sehen Sie beim nächsten Laden der URL den detaillierten Fehler. Das wird Ihnen helfen, das Problem zu beheben.
In meinem Fall bestand der Fehler beispielsweise darin, dass die verwaltete Identität meiner API-App nicht für den Zugriff auf das Schlüsseldepot konfiguriert war, um das Speicherkonto und die Cosmos-Datenbankschlüssel abzurufen. Ich habe beim Start die konfigurierten Speicher- und Cosmos-DB-Objekte eingefügt, sodass der Moment fehlschlug, als ich meine App startete.
Sie können weitere Details erhalten, indem Sie ASPNETCORE_DETAILEDERRORS = true
Aktivieren:
wechseln Sie zu Ihrem Azure-Dashboard -> Ihr App-Dienst
In Ihren Anwendungseinstellungen (in der linken Seitenleiste) -> scrollen Sie nach unten zu Konfiguration. Dies ist ein Schlüssel-Wert-Paar von Einstellungen. Geben Sie die obigen Werte ein. Starten Sie Ihre Web-App neu.
Habe meine Tipps von https://scottsauber.com/2017/04/10/wie-zu-und-beseitigungsfehler-aneror-besucht-bei-die-anwendung-der-anwendung-in-asp-net-core-on- iis/
Hinweis - Sie sollten diese Option deaktivieren, nachdem Sie die Fehlerbehebung durchgeführt haben, da dies eine Leistungseinschränkung darstellt.
Das aspNetCore-Element der web.config sollte also so aussehen
Aktivieren Sie DetailedErrorsKey
in Program.cs
so können Sie herausfinden, was passiert.
WebHost.CreateDefaultBuilder(args)
.UseSetting(WebHostDefaults.DetailedErrorsKey, "true")
Ich konnte meine Ausnahmen für diesen Fehler feststellen, indem ich die App von der veröffentlichten ausführbaren Datei aus startete.
Um dies lokal zu versuchen, können Sie mit der rechten Maustaste auf das Webprojekt klicken, auf Veröffentlichen klicken und es dann in einem Ordner veröffentlichen. In dem Ordner mit dem gleichen Namen wie das Projekt sollte sich eine ausführbare Datei befinden. Führen Sie das aus und es sollte Ausnahmen in der Konsole anzeigen.
Führen Sie die Anwendung aus, indem Sie den Befehl ausführen
dotnet myapplicationname.dll
Dies löst Startfehler aus und kann Ihnen helfen, den Fehler einzugrenzen.