Einleitung
Die Entwicklung einer C#-Anwendung ist nur die halbe Miete. Damit Ihr Projekt für Benutzer im Internet zugänglich wird, muss es auf einem Server bereitgestellt werden. Ein virtueller privater Server (VPS) ist die ideale Lösung zum Hosten von .NET-Anwendungen, da er die vollständige Kontrolle über die Umgebung bietet und alles an spezifische Anforderungen anpassen lässt.
In diesem Artikel werden wir den gesamten Bereitstellungsprozess einer C#-Anwendung (ASP.NET Core) auf einem VPS mit Linux (Ubuntu 22.04) durchgehen. Sie erfahren, wie Sie den Server vorbereiten, die erforderliche Software installieren, die Anwendung veröffentlichen und den Webserver für den Betrieb konfigurieren. Alle Schritte werden mit Codebeispielen und Befehlen begleitet.
1. VPS-Vorbereitung und Installation des .NET SDK
Der erste Schritt ist die Vorbereitung des Servers. Wir verwenden Ubuntu 22.04 LTS, da es eines der beliebtesten und stabilsten Betriebssysteme für Server ist. Stellen Sie eine SSH-Verbindung zum VPS her:
ssh user@your-server-ipNach dem Einloggen aktualisieren Sie die Paketliste und installieren die erforderlichen Abhängigkeiten:
sudo apt updatesudo apt upgrade -ysudo apt install wget apt-transport-https software-properties-common -yFügen Sie nun das Microsoft-Repository hinzu und installieren Sie das .NET SDK. Für .NET 8 führen Sie Folgendes aus:
wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.debsudo dpkg -i packages-microsoft-prod.debsudo apt updatesudo apt install dotnet-sdk-8.0 -yÜberprüfen Sie die Installation:
dotnet --versionWenn Sie eine Versionsnummer sehen (z.B. 8.0.100), ist alles korrekt installiert.
Wichtig: Wenn Ihre Anwendung eine Datenbank verwendet (z.B. PostgreSQL oder SQLite), installieren Sie das entsprechende Paket. Für PostgreSQL:
sudo apt install postgresql postgresql-contrib -y2. Veröffentlichen und Hochladen der Anwendung auf den Server
Bereiten Sie nun die Anwendung selbst für die Bereitstellung vor. Öffnen Sie auf Ihrem lokalen Computer (auf dem entwickelt wird) ein Terminal im Projektstammverzeichnis und führen Sie die Veröffentlichung im Release-Modus durch:
dotnet publish -c Release -o ./publishDieser Befehl erstellt einen Ordner publish mit allen erforderlichen Dateien zum Ausführen der Anwendung auf dem Server. Jetzt muss dieser Ordner auf den VPS hochgeladen werden. Verwenden Sie SCP oder SFTP. Beispiel mit SCP:
scp -r ./publish user@your-server-ip:/home/user/myappWobei myapp der Name des Ordners ist, in dem Ihre Anwendung auf dem Server gespeichert wird.
Nach dem Hochladen verbinden Sie sich mit dem Server und verschieben die Dateien an einen geeigneteren Ort, z.B. nach /var/www/myapp:
sudo mkdir -p /var/www/myappsudo cp -r /home/user/myapp/* /var/www/myapp/Vergessen Sie nicht, die korrekten Berechtigungen für den Ordner zu setzen:
sudo chown -R www-data:www-data /var/www/myappsudo chmod -R 755 /var/www/myapp3. Konfiguration von systemd für den automatischen Start
Damit Ihre Anwendung automatisch beim Systemstart startet und bei einem Absturz neu gestartet wird, erstellen wir einen systemd-Dienst. Erstellen Sie eine Konfigurationsdatei:
sudo nano /etc/systemd/system/myapp.serviceFügen Sie den folgenden Inhalt ein (ersetzen Sie Pfade und Benutzernamen durch Ihre eigenen):
[Unit]Description=My ASP.NET Core ApplicationAfter=network.target
[Service]WorkingDirectory=/var/www/myappExecStart=/usr/bin/dotnet /var/www/myapp/YourApp.dllRestart=alwaysRestartSec=10KillSignal=SIGINTSyslogIdentifier=myappUser=www-dataEnvironment=ASPNETCORE_ENVIRONMENT=ProductionEnvironment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]WantedBy=multi-user.targetSpeichern Sie die Datei (Strg+O, dann Enter) und beenden Sie den Editor (Strg+X). Laden Sie nun systemd neu und starten Sie den Dienst:
sudo systemctl daemon-reloadsudo systemctl start myappsudo systemctl enable myapp