webentwicklung-frage-antwort-db.com.de

ASP.NET 5 Beim Starten der Anwendung ist ein Fehler aufgetreten

Nach dem Veröffentlichen einer ASP.NET-Webanwendung versuche ich, die Website auf meinem lokalen Server zu hosten. Wenn ich es jedoch starte, wird mir dieser Fehler in meinem Browser angezeigt:

Hoppla. 500 Internal Server Error Beim Starten von .__ ist ein Fehler aufgetreten. Anwendung.

Wie kann ich debuggen, was dieser Fehler ist? Die Website funktioniert (sowohl Debug- als auch Release-Konfigurationen), wenn IISExpress und "Web" in Visual Studio verwendet werden.

Ich verwende die Entwicklungsumgebung und habe bereits app.UseDeveloperExceptionPage(); angegeben. 

Ich habe die Anweisungen here zur Bereitstellung auf IIS befolgt. 

Ich habe auch den Vorschlag ausprobiert here (Re-Publishing mit "Alle vorhandenen Dateien vor dem Veröffentlichen löschen" ausgewählt). (Das OP dort hat einen etwas anderen Fehler, deshalb poste ich eine neue Frage.)

Ich habe stundenlang im Internet gesucht, aber darüber scheint es nicht viel zu geben. Irgendwelche Ideen?

Ich bin unter Windows 7 und verwende ASP.NET 5 RC1.

19
painiyff

Sie sollten stdoutLogEnabled=true in der Datei web.config festlegen, um den tatsächlichen Fehler anzuzeigen. Sie können angeben, wo diese Dateien mit dem Argument stdoutLogFile geschrieben werden. Das folgende Screenshot-Beispiel schreibt in stdoutLogFile=".\logs\stdout". (Sie sollten sicherstellen, dass das Verzeichnis vorhanden ist; die App erstellt es nicht.)

Ja, die richtige Konfigurationsdatei kann nicht gefunden werden. Ja, die Standardumgebung ist Produktion. Es wird explizit im Visual Studio in den Projekteigenschaften entwickelt. 

Update: In AspNetCore RTM heißt das Modul aspnetCore unter dem Knoten system.webServer in web.config. Wie @ErikE in Kommentaren feststellte, befindet sich die Datei web.config jetzt im Stammverzeichnis des Projekts und nicht wie in früheren Versionen unter wwwroot.

 enter image description here

34
Muqeet Khan

Dieser Fehler tritt auch auf, wenn Sie vom Start aus eine Datenbankverbindung versuchen (z. B. zum Seeding) und auf dem Implementierungsserver aufgrund unzureichender Vorrechte auf dem Datenbankserver ausfällt.

8
Andre

Dieser Fehler tritt unter mehreren Bedingungen auf. In meiner Situation habe ich die Datenbankverbindungszeichenfolge nicht richtig gesetzt. Ich habe es in Visual Studio 2017 wie folgt behoben:

1) Klicken Sie mit der rechten Maustaste auf das Projekt, wählen Sie Veröffentlichen, und öffnen Sie die Seite Veröffentlichen im Hauptbereich.

2) Wählen Sie links die Registerkarte Veröffentlichen

3) Im Bereich Zusammenfassung gibt es einen Link "Einstellungen ...". Klick es. Dadurch wird das Dialogfeld "Veröffentlichen" geöffnet.

4) Klicken Sie links auf die Registerkarte Einstellungen.

5) Erweitern Sie die Optionen zum Veröffentlichen von Dateien, und aktivieren Sie das Kontrollkästchen "Zusätzliche Dateien am Zielort entfernen".

6) Erweitern Sie Datenbanken, aktivieren Sie "Diese Verbindungszeichenfolge zur Laufzeit verwenden". (Diese Option war bereits mit meiner Azure SQL-Verbindungszeichenfolge vorbelegt, je nachdem, wie ich meine Veröffentlichungsoptionen ursprünglich eingerichtet habe.)

7) Erweitern Sie Entity Framework-Migrationen, und aktivieren Sie "Diese Migration beim Publizieren anwenden".

8) Klicken Sie auf Speichern

9) Veröffentlichen

10) Daumen drücken

2
Bob Tabor

Das Problem: Dieser Fehler ist höchstwahrscheinlich auf unzureichende Berechtigungen für Application Pool Identities Zurückzuführen. Herausfinden:

Gehen Sie zu Windows Task-Manager und suchen Sie unter Registerkarte Details/Prozesse (je nach Windows-Betriebssystem) nach w3wp.exe Und unter User name Nach Ihrem Anwendung (<App_Pool_Name> normalerweise DefaultAppPool), die dort als IIS Worker Process ausgeführt wird. Wenn Ihre App dort nicht aufgeführt ist, verfügt die App nicht über ausreichende Berechtigungen für Ihre Datenbank.

m das Problem zu beheben: Tun Sie Folgendes und gewähren Sie vollen Zugriff auf Ihre App:

Gehen Sie zu Ihrem SQL Server Management Studio und melden Sie sich als Administrator an. Öffnen Sie Sicherheit> Anmeldungen> klicken Sie mit der rechten Maustaste auf Anmeldungen, und fügen Sie einen hinzu New Login:

Unter Allgemein:

  • für Login Name: Geben Sie IIS APPPOOL\<App_Pool_Name> normalerweise DefaultAppPool ein

  • für Default Database: zeigen Sie auf <Your_App_Database>

Unter Benutzerzuordnung:

  • auf der Box Users mapped to this login:

    - Aktivieren Sie das Kontrollkästchen Zu <Your_App_Database> Zuordnen.

    -Unter Benutzer Geben Sie IIS APPPOOL\<App_Pool_Name> Normalerweise DefaultAppPool ein.

    -Unter Standardschema Eingabe dbo

  • auf der Box Database role membership for:<Your_App_Database>

    - Aktivieren Sie die folgenden Kontrollkästchen: db_datareader, db_datawriter Und public

Klicken Sie auf OK

Versuche nun auf deine App zuzugreifen und es sollte funktionieren !!!

0
Jacman