20-07-2024, 09:46
Das Einrichten deiner Web-API-Services mit IIS kann anfangs etwas überwältigend erscheinen, aber ehrlich gesagt, sobald du den Dreh raus hast, ist es super einfach. Ich kann meine Erfahrungen teilen und dich durch den Prozess führen, damit du deine API problemlos zum Laufen bringst.
Zuerst solltest du sicherstellen, dass deine Entwicklungsumgebung richtig eingerichtet ist. Ich arbeite normalerweise auf Windows, also ist der erste Schritt sicherzustellen, dass IIS installiert und aktiviert ist. Wenn es auf deinem Rechner noch nicht läuft, kannst du es ganz einfach über die Systemsteuerung herunterladen. Gehe einfach zu "Programme und Funktionen", klicke dann auf "Windows-Funktionen aktivieren oder deaktivieren" und setze ein Häkchen bei Internetinformationsdienste. Du solltest auch die Funktionen unter IIS überprüfen, wie die Webverwaltungs-Tools und World Wide Web-Dienste, insbesondere wenn du denkst, dass du sie später brauchen wirst.
Sobald du alles eingerichtet hast, kannst du dein API-Projekt vorbereiten. Ich benutze normalerweise ASP.NET Core für meine APIs, da es leichtgewichtig ist und viele verschiedene Anwendungsfälle abdeckt. Wahrscheinlich hast du dein Projekt bereits lokal erstellt und getestet, was großartig ist, denn das bedeutet, dass du fast fertig bist! Stelle nur sicher, dass deine API bereit ist, veröffentlicht zu werden.
Das Veröffentlichen einer API ist normalerweise ein unkomplizierter Prozess. In Visual Studio kannst du mit der rechten Maustaste auf dein Projekt klicken und "Veröffentlichen" auswählen. Du wirst eine Menge Optionen sehen, aber lass uns vorerst die Ordneroption wählen, da wir es auf IIS bereitstellen wollen. Wähle einen Ordnerpfad, in den deine Dateien gespeichert werden sollen. Sobald das erledigt ist, kannst du auf Veröffentlichen klicken, und Visual Studio kümmert sich um den Rest. Es kompiliert alles, packt es zusammen und wirft es in deinen gewählten Ordner.
Nun kommen wir zur Konfiguration von IIS. Öffne den IIS-Manager - der befindet sich normalerweise in den Verwaltungstools in der Systemsteuerung. Du wirst auf der linken Seite den Namen deines Rechners sehen. Hier kannst du alle deine Sites verwalten. Klicke mit der rechten Maustaste auf "Sites" und wähle "Website hinzufügen", wodurch ein neues Fenster geöffnet wird.
In diesem Fenster musst du einige Informationen ausfüllen. Der Seitenname kann alles sein, was du möchtest, sagen wir "MyApiService". Als Nächstes suchst du den physischen Pfad, in dem deine veröffentlichten API-Dateien gespeichert sind. Das ist der Pfad, den du während des Veröffentlichungsprozesses ausgewählt hast. Danach richtest du einen Port ein. Standardmäßig kannst du Port 80 verwenden, wenn du nichts anderes darauf hast. Stelle nur sicher, dass er nicht bereits verwendet wird, oder du kannst einen anderen Port wie 8080 wählen - es liegt ganz bei dir.
Als Nächstes ist es äußerst wichtig, den Bindungstyp auf "http" oder "https" einzustellen, je nachdem, ob du den Dienst sicher ausführen möchtest oder nicht. Zu Testzwecken ist http normalerweise in Ordnung, aber denk daran, es ist Best Practice, https für alles zu verwenden, was mit der Produktion zu tun hat. Nachdem du das eingerichtet hast, kannst du auf OK klicken, und schon hast du deine Website in IIS erstellt!
Jetzt kommt der Teil, bei dem ich normalerweise anfangs auf einige Probleme stoße: das Einstellen des richtigen Anwendungs-Pools. In IIS läuft jede Website unter einem Anwendungs-Pool, der die Ausführungsumgebung für eine Webanwendung verwaltet. Standardmäßig läuft deine Website unter "DefaultAppPool", aber manchmal ist es besser, einen neuen zu erstellen, insbesondere für .NET Core-Apps. Klicke mit der rechten Maustaste auf "Anwendungspools" und wähle "Anwendungspool hinzufügen". Nenne ihn einfach irgendwie relevant, vielleicht "MyApiAppPool", und setze die .NET CLR-Version auf "Kein verwalteter Code".
Das ist entscheidend, da ASP.NET Core in seiner eigenen Umgebung läuft und nicht vom vollständigen .NET Framework abhängt. Sobald das erledigt ist, kannst du zu deiner Website zurückgehen, mit der rechten Maustaste darauf klicken und "Anwendung bearbeiten" auswählen, um sie dem neu erstellten Anwendungs-Pool zuzuweisen.
Nachdem du das getan hast, ist es Zeit für Tests! Ich öffne normalerweise einen Browser und gebe entweder "http://localhost:YourPort/api/values" ein oder was auch immer dein Endpunkt ist. Wenn alles richtig eingerichtet ist, solltest du sehen, dass deine API mit Daten antwortet oder zumindest keine Fehler wirft.
Wenn du auf einen Fehler stößt, könnte es einige Gründe geben. Ich überprüfe oft die Protokolle an diesem Punkt. Stelle sicher, dass du das Protokollieren in deiner App aktiviert hast. Du kannst auch die Ereignisanzeige in Windows überprüfen. Fehler können dort häufig auftreten, insbesondere wenn IIS versucht, Dinge auszuführen und nicht weiß, was zu tun ist. Dieser Teil kann etwas knifflig sein, aber mit Geduld habe ich normalerweise den Übeltäter gefunden.
Ich überprüfe auch gerne die Berechtigungen für den Ordner, in dem ich meine API veröffentlicht habe. IIS läuft unter einem bestimmten Benutzerkonto, also würde ich sicherstellen, dass die Gruppe IIS_IUSRS Leseberechtigungen und Ausführungsberechtigungen für diesen Ordner hat. Manchmal reicht es aus, diese kleinen Berechtigungsanpassungen vorzunehmen, und deine API beginnt sich richtig zu verhalten.
Sobald alles auf deinem lokalen Rechner gut funktioniert, könnte es Zeit sein, über die Bereitstellung auf einem Produktionsserver nachzudenken. Ich neige dazu, den gleichen Prozess zu reproduzieren, den ich gerade beschrieben habe, aber es gibt andere Faktoren zu berücksichtigen, wie das Einrichten einer Datenbankverbindung und die Konfiguration der Firewall-Einstellungen. Denk immer daran zu überprüfen, ob der Server den Zugriff über den Port deiner API zulässt.
Ein weiterer Tipp, der mir immer geholfen hat, ist, CORS zu aktivieren, wenn deine API von einer clientseitigen Anwendung auf einem anderen Domain aufgerufen werden soll. CORS muss als Teil deiner API im Middleware festgelegt werden. In deiner Startup.cs-Datei kannst du services.AddCors zur Methode ConfigureServices hinzufügen und die Richtlinie entsprechend konfigurieren.
Denke auch daran, dass du, sobald deine API läuft, möglicherweise ihre Leistung überwachen oder einige Protokollierungstools einrichten möchtest, um die Nutzung zu verfolgen. Es gibt viele Drittanbieterdienste, die Einblicke geben können, wie gut deine API funktioniert, was für die laufende Wartung und Verbesserung super hilfreich sein kann.
Nachdem du all dies erledigt hast, hast du deinen Web-API-Dienst auf IIS eingerichtet und eine solide Grundlage für zukünftige Projekte, die du angehen möchtest. Es ist unglaublich befriedigend, zu sehen, wie alles zusammenkommt, und zu wissen, dass du einen funktionierenden Dienst hast, auf dem du aufbauen kannst.
Vertraue mir, mit praktischer Erfahrung wirst du feststellen, dass das Hosting und die Verwaltung von APIs über IIS jedes Mal einfacher wird. Ich hoffe, das gibt dir einen klaren Fahrplan, aber ich bin hier, wenn du Fragen hast oder eine Klarstellung zu einem Teil des Prozesses benötigst!
Ich hoffe, du fandest meinen Beitrag nützlich. Hast du übrigens eine gute Backup-Lösung für Windows Server? In diesem Beitrag erkläre ich, wie man Windows Server ordnungsgemäß sichert.
Zuerst solltest du sicherstellen, dass deine Entwicklungsumgebung richtig eingerichtet ist. Ich arbeite normalerweise auf Windows, also ist der erste Schritt sicherzustellen, dass IIS installiert und aktiviert ist. Wenn es auf deinem Rechner noch nicht läuft, kannst du es ganz einfach über die Systemsteuerung herunterladen. Gehe einfach zu "Programme und Funktionen", klicke dann auf "Windows-Funktionen aktivieren oder deaktivieren" und setze ein Häkchen bei Internetinformationsdienste. Du solltest auch die Funktionen unter IIS überprüfen, wie die Webverwaltungs-Tools und World Wide Web-Dienste, insbesondere wenn du denkst, dass du sie später brauchen wirst.
Sobald du alles eingerichtet hast, kannst du dein API-Projekt vorbereiten. Ich benutze normalerweise ASP.NET Core für meine APIs, da es leichtgewichtig ist und viele verschiedene Anwendungsfälle abdeckt. Wahrscheinlich hast du dein Projekt bereits lokal erstellt und getestet, was großartig ist, denn das bedeutet, dass du fast fertig bist! Stelle nur sicher, dass deine API bereit ist, veröffentlicht zu werden.
Das Veröffentlichen einer API ist normalerweise ein unkomplizierter Prozess. In Visual Studio kannst du mit der rechten Maustaste auf dein Projekt klicken und "Veröffentlichen" auswählen. Du wirst eine Menge Optionen sehen, aber lass uns vorerst die Ordneroption wählen, da wir es auf IIS bereitstellen wollen. Wähle einen Ordnerpfad, in den deine Dateien gespeichert werden sollen. Sobald das erledigt ist, kannst du auf Veröffentlichen klicken, und Visual Studio kümmert sich um den Rest. Es kompiliert alles, packt es zusammen und wirft es in deinen gewählten Ordner.
Nun kommen wir zur Konfiguration von IIS. Öffne den IIS-Manager - der befindet sich normalerweise in den Verwaltungstools in der Systemsteuerung. Du wirst auf der linken Seite den Namen deines Rechners sehen. Hier kannst du alle deine Sites verwalten. Klicke mit der rechten Maustaste auf "Sites" und wähle "Website hinzufügen", wodurch ein neues Fenster geöffnet wird.
In diesem Fenster musst du einige Informationen ausfüllen. Der Seitenname kann alles sein, was du möchtest, sagen wir "MyApiService". Als Nächstes suchst du den physischen Pfad, in dem deine veröffentlichten API-Dateien gespeichert sind. Das ist der Pfad, den du während des Veröffentlichungsprozesses ausgewählt hast. Danach richtest du einen Port ein. Standardmäßig kannst du Port 80 verwenden, wenn du nichts anderes darauf hast. Stelle nur sicher, dass er nicht bereits verwendet wird, oder du kannst einen anderen Port wie 8080 wählen - es liegt ganz bei dir.
Als Nächstes ist es äußerst wichtig, den Bindungstyp auf "http" oder "https" einzustellen, je nachdem, ob du den Dienst sicher ausführen möchtest oder nicht. Zu Testzwecken ist http normalerweise in Ordnung, aber denk daran, es ist Best Practice, https für alles zu verwenden, was mit der Produktion zu tun hat. Nachdem du das eingerichtet hast, kannst du auf OK klicken, und schon hast du deine Website in IIS erstellt!
Jetzt kommt der Teil, bei dem ich normalerweise anfangs auf einige Probleme stoße: das Einstellen des richtigen Anwendungs-Pools. In IIS läuft jede Website unter einem Anwendungs-Pool, der die Ausführungsumgebung für eine Webanwendung verwaltet. Standardmäßig läuft deine Website unter "DefaultAppPool", aber manchmal ist es besser, einen neuen zu erstellen, insbesondere für .NET Core-Apps. Klicke mit der rechten Maustaste auf "Anwendungspools" und wähle "Anwendungspool hinzufügen". Nenne ihn einfach irgendwie relevant, vielleicht "MyApiAppPool", und setze die .NET CLR-Version auf "Kein verwalteter Code".
Das ist entscheidend, da ASP.NET Core in seiner eigenen Umgebung läuft und nicht vom vollständigen .NET Framework abhängt. Sobald das erledigt ist, kannst du zu deiner Website zurückgehen, mit der rechten Maustaste darauf klicken und "Anwendung bearbeiten" auswählen, um sie dem neu erstellten Anwendungs-Pool zuzuweisen.
Nachdem du das getan hast, ist es Zeit für Tests! Ich öffne normalerweise einen Browser und gebe entweder "http://localhost:YourPort/api/values" ein oder was auch immer dein Endpunkt ist. Wenn alles richtig eingerichtet ist, solltest du sehen, dass deine API mit Daten antwortet oder zumindest keine Fehler wirft.
Wenn du auf einen Fehler stößt, könnte es einige Gründe geben. Ich überprüfe oft die Protokolle an diesem Punkt. Stelle sicher, dass du das Protokollieren in deiner App aktiviert hast. Du kannst auch die Ereignisanzeige in Windows überprüfen. Fehler können dort häufig auftreten, insbesondere wenn IIS versucht, Dinge auszuführen und nicht weiß, was zu tun ist. Dieser Teil kann etwas knifflig sein, aber mit Geduld habe ich normalerweise den Übeltäter gefunden.
Ich überprüfe auch gerne die Berechtigungen für den Ordner, in dem ich meine API veröffentlicht habe. IIS läuft unter einem bestimmten Benutzerkonto, also würde ich sicherstellen, dass die Gruppe IIS_IUSRS Leseberechtigungen und Ausführungsberechtigungen für diesen Ordner hat. Manchmal reicht es aus, diese kleinen Berechtigungsanpassungen vorzunehmen, und deine API beginnt sich richtig zu verhalten.
Sobald alles auf deinem lokalen Rechner gut funktioniert, könnte es Zeit sein, über die Bereitstellung auf einem Produktionsserver nachzudenken. Ich neige dazu, den gleichen Prozess zu reproduzieren, den ich gerade beschrieben habe, aber es gibt andere Faktoren zu berücksichtigen, wie das Einrichten einer Datenbankverbindung und die Konfiguration der Firewall-Einstellungen. Denk immer daran zu überprüfen, ob der Server den Zugriff über den Port deiner API zulässt.
Ein weiterer Tipp, der mir immer geholfen hat, ist, CORS zu aktivieren, wenn deine API von einer clientseitigen Anwendung auf einem anderen Domain aufgerufen werden soll. CORS muss als Teil deiner API im Middleware festgelegt werden. In deiner Startup.cs-Datei kannst du services.AddCors zur Methode ConfigureServices hinzufügen und die Richtlinie entsprechend konfigurieren.
Denke auch daran, dass du, sobald deine API läuft, möglicherweise ihre Leistung überwachen oder einige Protokollierungstools einrichten möchtest, um die Nutzung zu verfolgen. Es gibt viele Drittanbieterdienste, die Einblicke geben können, wie gut deine API funktioniert, was für die laufende Wartung und Verbesserung super hilfreich sein kann.
Nachdem du all dies erledigt hast, hast du deinen Web-API-Dienst auf IIS eingerichtet und eine solide Grundlage für zukünftige Projekte, die du angehen möchtest. Es ist unglaublich befriedigend, zu sehen, wie alles zusammenkommt, und zu wissen, dass du einen funktionierenden Dienst hast, auf dem du aufbauen kannst.
Vertraue mir, mit praktischer Erfahrung wirst du feststellen, dass das Hosting und die Verwaltung von APIs über IIS jedes Mal einfacher wird. Ich hoffe, das gibt dir einen klaren Fahrplan, aber ich bin hier, wenn du Fragen hast oder eine Klarstellung zu einem Teil des Prozesses benötigst!
Ich hoffe, du fandest meinen Beitrag nützlich. Hast du übrigens eine gute Backup-Lösung für Windows Server? In diesem Beitrag erkläre ich, wie man Windows Server ordnungsgemäß sichert.