Bereitstellung einer C#-Anwendung auf einem VPS: Schritt-für-Schritt-Anleitung

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten
```html

Einleitung

Die Entwicklung einer C#-Anwendung auf der .NET-Plattform ist nur die halbe Miete. Damit Ihr Projekt für Benutzer im Internet zugänglich wird, muss es korrekt auf einem Server bereitgestellt werden. VPS (Virtual Private Server) ist die ideale Lösung für kleine und mittlere Unternehmen sowie Indie-Entwickler: Er bietet vollständige Kontrolle über die Umgebung zu einem erschwinglichen Preis. In diesem Artikel gehen wir den gesamten Prozess des Deployments einer C#-Anwendung auf einem VPS mit Linux (Ubuntu 22.04) durch. Sie erfahren, wie Sie den Server vorbereiten, die Anwendung veröffentlichen, einen Reverse Proxy mit Nginx einrichten und den Autostart über systemd sicherstellen.



1. VPS vorbereiten und .NET Runtime installieren

1.1. Mit dem Server verbinden

Nach dem Kauf des VPS erhalten Sie eine IP-Adresse und ein Root-Passwort. Stellen Sie eine SSH-Verbindung her:

ssh root@ihre-server-ip

Es wird empfohlen, aus Sicherheitsgründen sofort einen separaten Benutzer zu erstellen:

adduser appuserusermod -aG sudo appusersu - appuser


1.2. .NET Runtime installieren

Für den Betrieb einer C#-Anwendung auf dem Server wird die ASP.NET Core Runtime benötigt. Fügen Sie das Microsoft-Repository hinzu und installieren Sie das Paket:

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-get updatesudo apt-get install -y aspnetcore-runtime-8.0

Überprüfen Sie die Installation:

dotnet --list-runtimes

Sie sollten eine Zeile mit der Version ASP.NET Core 8.0.0 sehen.



2. Anwendung veröffentlichen und auf den Server hochladen

2.1. Veröffentlichung (publish) auf dem lokalen Rechner

Öffnen Sie das Projekt auf Ihrem Computer mit Visual Studio oder der .NET CLI und führen Sie den Befehl zum Veröffentlichen aus:

dotnet publish -c Release -o ./publish

Dieser Befehl erstellt einen Ordner publish, der alle für den Start der Anwendung erforderlichen Dateien enthält (einschließlich der Runtime-Abhängigkeiten, falls Sie FDD – Framework-Dependent Deployment – verwenden).



2.2. Auf den VPS hochladen

Kopieren Sie den Ordner publish mit scp oder sftp auf den Server. Führen Sie auf dem lokalen Rechner aus:

scp -r ./publish appuser@ihre-server-ip:/home/appuser/myapp

Überprüfen Sie nun auf dem Server, ob die Dateien vorhanden sind:

ls -la /home/appuser/myapp


3. systemd für den Autostart konfigurieren

Damit die Anwendung beim Systemstart startet und nach Abstürzen automatisch neu gestartet wird, erstellen Sie eine systemd-Unit.

3.1. Dienstdatei erstellen

Erstellen Sie die Datei /etc/systemd/system/myapp.service mit Root-Rechten:

sudo nano /etc/systemd/system/myapp.service

Fügen Sie folgenden Inhalt ein:

[Unit]Description=My ASP.NET Core ApplicationAfter=network.target

[Service]WorkingDirectory=/home/appuser/myappExecStart=/usr/bin/dotnet /home/appuser/myapp/YourAppName.dllRestart=alwaysRestartSec=10KillSignal=SIGINTSyslogIdentifier=myappUser=appuserEnvironment=ASPNETCORE_ENVIRONMENT=ProductionEnvironment=ASPNETCORE_URLS=http://localhost:5000

[Install]WantedBy=multi-user.target

Ersetzen Sie YourAppName.dll durch den tatsächlichen Namen Ihrer .dll-Datei (entspricht normalerweise dem Projektnamen).



3.2. Dienst starten und aktivieren

sudo systemctl daemon-reloadsudo systemctl start myappsudo systemctl enable myapp

Überprüfen Sie den Status:

sudo systemctl status myapp

Wenn alles richtig konfiguriert ist, sehen Sie den Status active (running). Die Anwendung lauscht nun auf Port 5000 auf der lokalen Schnittstelle.



4. Nginx als Reverse Proxy einrichten

Um die Anwendung von außen über die Standardports (80/443) erreichbar zu machen und ein SSL-Zertifikat hinzuzufügen, installieren und konfigurieren Sie Nginx.

4.1. Nginx installieren

sudo apt updatesudo apt install nginx -y


4.2. Site-Konfiguration

Blogs

Buchempfehlungen