ASP.NET Core auf dem Windows-Hosting

Skip to main content
Du bist hier:
Drucken

ASP.NET Core auf dem Windows-Hosting

Auf unseren Windows-Hostings kannst du ASP.NET-Core-Anwendungen betreiben. Auf den Servern sind die aktuellen ASP.NET Core Hosting Bundles installiert (zurzeit .NET 8 bis .NET 10), inklusive ASP.NET Core Module V2 (ANCM) und der Laufzeit in 32 und 64 Bit. Besondere Einstellungen in Plesk oder IIS brauchst du nicht.

32 oder 64 Bit?

Jede Domain läuft in einem eigenen Anwendungspool mit eigenem Benutzer, getrennt von deinen anderen Domains. In der Regel ist der Pool auf 32 Bit eingestellt: Veröffentliche deine Anwendung dann für win-x86. Ist er auf 64 Bit eingestellt, veröffentliche für win-x64. Beides geht framework-abhängig oder self-contained. Passt die Zielplattform nicht zum Pool, startet die Anwendung nicht. Möchtest du den Pool umstellen lassen, melde dich über ein Ticket.

Anwendung einrichten

  1. Lade die veröffentlichte Anwendung per FTP oder über den Plesk-Dateimanager in die Dokumentwurzel deiner Domain hoch. Achte darauf, dass auch der Ordner wwwroot mit allen Unterordnern hochgeladen wird.
  2. Öffne in Plesk bei deiner Domain die Kachel «.NET Core». Dort legst du die Ausführungsdatei der Anwendung fest, hinterlegst Umgebungsvariablen und startest die Anwendung neu.

Fehler 500.30 «ASP.NET Core app failed to start»

Diese Meldung bedeutet, dass deine Anwendung beim Start abbricht. Die Ursache liegt fast immer in der Anwendung selbst, zum Beispiel ein fehlender Ordner (häufig wwwroot), eine fehlende Konfigurationsdatei oder eine falsche Zielplattform (siehe «32 oder 64 Bit?»). So siehst du die genaue Fehlermeldung:

  1. Öffne in Plesk die Kachel «.NET Core» und aktiviere unter «Protokolle» die Option «stdout/stderr in eine Datei umleiten».
  2. Wähle als Verzeichnis den Ordner «logs» auf der obersten Ebene deines Abos. Er liegt ausserhalb der Dokumentwurzel, ist von aussen nicht abrufbar, und deine Anwendung darf dort schreiben.
  3. Rufe die Website erneut auf. Im Ordner «logs» findest du nun eine Datei mit der Fehlermeldung.

Alternativ setzt du in der web.config bei aspNetCore den Wert stdoutLogEnabled=»true» und gibst unter stdoutLogFile einen Ordner an, in dem die Anwendung schreiben darf. Da das Log interne Angaben enthalten kann, schalte es nach der Fehlersuche wieder aus.

Daten und Schlüssel geschützt ablegen

  • Der Ordner App_Data in der Dokumentwurzel wird vom Webserver nie ausgeliefert. Schreibrechte für deine Anwendung vergibst du im Plesk-Dateimanager über «Berechtigungen ändern» (Benutzer des Anwendungspools, Schreiben und Ändern). Alternativ aktivierst du in den «Hosting-Einstellungen» der Domain die Option «Zusätzliche Schreib-/Änderungsrechte», dann darf die Anwendung in der ganzen Dokumentwurzel schreiben.
  • Oder du legst im Plesk-Dateimanager auf der obersten Ebene deines Abos einen eigenen Ordner an, also ausserhalb jeder Dokumentwurzel, und vergibst die Schreibrechte dort über «Berechtigungen ändern». Dieser Ordner ist per FTP nur mit dem Hauptzugang des Abos erreichbar, nicht mit zusätzlichen FTP-Benutzern, die auf eine einzelne Domain beschränkt sind.
  • Speichere die Schlüssel von ASP.NET Core Data Protection ausdrücklich in einem dieser Ordner (PersistKeysToFileSystem). Sonst gehen sie bei einem Neustart verloren, und angemeldete Benutzer werden abgemeldet.

Geheimnisse (z.B. API-Schlüssel)

In der Kachel «.NET Core» kannst du Umgebungsvariablen hinterlegen. Sie werden nicht öffentlich ausgeliefert. Beachte: Diese Einstellungen landen in der web.config deiner Anwendung. Überschreibst du die web.config beim Bereitstellen einer neuen Version, sind sie weg. Werte, die jede Bereitstellung überstehen müssen, legst du besser in einer Konfigurationsdatei im geschützten Ordner ab und liest sie beim Start der Anwendung ein.

Anwendung neu starten oder anhalten

  • In der Kachel «.NET Core» mit «Neustart», oder bei der Domain unter «Dedizierter IIS-Anwendungspool» mit den Schaltflächen zum Beenden, Starten und Recyceln. Deine anderen Domains bleiben davon unberührt.
  • Legst du eine Datei app_offline.htm in die Dokumentwurzel, hält die Anwendung kontrolliert an, bis du die Datei wieder entfernst. Das ist praktisch für Updates oder eine konsistente Sicherung.
  • Einen Kommandozeilenzugang gibt es nicht. Über «Geplante Aufgaben» in Plesk kannst du aber eigene Programme, Batch- oder PowerShell-Skripte zeitgesteuert oder sofort ausführen.

Mehr zu den Unterschieden der beiden Hosting-Arten findest du im Artikel Unterschied UNIX & Windows Hosting.

Related Post