21-05-2024, 02:41
Wenn du darüber nachdenkst, die Bereitstellung in IIS zu automatisieren, ist eines der wirklich leistungsstarken Werkzeuge, die du nutzen kannst, Web Deploy. Ich erinnere mich, als ich es zum ersten Mal eingerichtet habe; es hat eine Weile gedauert, alles herauszufinden, aber sobald du den Dreh raus hast, läuft es reibungslos und spart eine Menge Zeit. Lass uns also darüber sprechen, wie ich Web Deploy in IIS für die automatisierte Bereitstellung konfiguriert habe. Es wird so sein, als würde ich dich durch meine Erfahrungen führen, und du wirst unterwegs ein solides Verständnis erlangen.
Zuerst musst du sicherstellen, dass Web Deploy auf deinem Server installiert ist. Es ist unkompliziert, und ehrlich gesagt, du kannst den Installer einfach von der Microsoft-Website herunterladen. Nach dem Ausführen des Installers musst du möglicherweise einige spezifische Optionen in Bezug auf die Funktionen auswählen, die du aktivieren möchtest. Ich gehe normalerweise mit den Standard Einstellungen; das ist normalerweise ausreichend, es sei denn, du hast spezifische Anforderungen.
Sobald du Web Deploy installiert hast, ist der nächste Schritt, IIS auf deinem Computer zum Laufen zu bringen, falls du es noch nicht eingerichtet hast. Du kannst es über das Dialogfeld Windows-Features aktivieren. Ich musste einige zusätzliche Komponenten aktivieren, basierend darauf, was ich bereitgestellt habe, wie die Verwaltungstools und die ASP.NET-Funktionen, falls ich an einer ASP.NET-Anwendung gearbeitet habe.
Nachdem du sichergestellt hast, dass IIS läuft, lass uns eine Site hinzufügen, auf die Web Deploy das Bereitstellungspaket hochladen wird. Im IIS-Manager klickst du mit der rechten Maustaste auf "Sites" und wählst die Option, eine neue Site hinzuzufügen. Du musst einen Namen für deine Site angeben, einen physischen Pfad auswählen, wo sich deine Anwendung befindet, und eine Bindung festlegen, falls deine Anwendung einen bestimmten Port oder einen Hostnamen benötigt. Vergiss nicht zu überprüfen, ob der Anwendungspool richtig eingerichtet ist. Ich erstelle oder benutze normalerweise einen spezifischen Anwendungspool, der zum Framework passt, auf dem meine App basiert, wie .NET v4.0 für ASP.NET-Apps.
Jetzt, da wir die Site eingerichtet haben, ist der nächste Schritt, Web Deploy für diese Site zu aktivieren. Du musst sicherstellen, dass der Web Management Service (WMSVC) auf deinem Server läuft. Du kannst ihn im Dienste-Manager finden. Als ich anfing, es zu benutzen, habe ich oft vergessen, diesen Dienst zu starten, und dann habe ich mich gewundert, warum die Bereitstellung immer wieder fehlschlug. Es ist wichtig, damit Web Deploy mit dem IIS-Server kommunizieren kann.
Mit WMSVC, das läuft, öffne den IIS-Manager erneut und klicke auf deine Site. Suche nach dem Abschnitt Verwaltung; dort gibt es normalerweise eine Option mit der Aufschrift "Web Deploy-Publishing konfigurieren". Wenn du darauf klickst, erhältst du ein Dialogfeld, in dem du ein Publikationsprofil erstellen kannst. Hier musst du einige Details festlegen, wie einen Benutzernamen und ein Passwort. Ich verwende normalerweise ein Benutzerkonto, das die Berechtigung hat, die Site zu verwalten, aber ich versuche, aus Sicherheitsgründen das integrierte Administrator-Konto zu vermeiden.
Hier ist ein Tipp: Manchmal stoße ich auf Probleme, wenn ich mich nicht als autorisierter Benutzer anmelde. Stelle sicher, dass du Benutzer hinzufügst, die Web Deploy ordnungsgemäß zugreifen können, ohne zu viele unnötige Berechtigungen zu haben. Du möchtest dein Konto auf das beschränken, was es braucht.
Nachdem du die Publikationsdetails in IIS konfiguriert hast, solltest du sicherstellen, dass die entsprechenden Firewall-Regeln festgelegt sind, um den Datenverkehr zuzulassen. Web Deploy verwendet spezifische Ports, typischerweise 8172 für das WMSVC, also überprüfe deine Netzwerkeinstellungen. Ich erinnere mich, dass ich einmal eine Stunde mit der Fehlersuche verbracht habe, nur um herauszufinden, dass der Port von der Firewall blockiert wurde. Du solltest auch sicherstellen, dass die Ports auf jeder externen Firewall offen sind, wenn du auf einen Remote-Server bereitstellst.
Als nächstes lass uns ein Bereitstellungspaket für deine Webanwendung erstellen. Wenn du Visual Studio verwendest (was ich oft mache), kann dieser Teil super einfach sein. Klicke mit der rechten Maustaste auf dein Projekt, gehe zu "Veröffentlichen" und wähle die Option "Web Deploy-Paket". Dort kannst du einige Einstellungen ausfüllen. Ich wähle in der Regel "Als ZIP-Datei exportieren", da es die Verwaltung einfacher macht.
Sobald dein Paket erstellt ist, habe ich festgestellt, dass es eine gute Praxis ist, deine Ordnerstrukturen organisiert zu halten. Ich speichere diese Pakete normalerweise in einem speziellen Ordner, wo ich sie später leicht wiederfinden kann. Ich versuche, sie so zu benennen, dass die Versionsnummer oder das Datum enthalten ist, damit klar ist, mit welchem ich arbeite.
Sobald du dein Paket hast, ist es an der Zeit, es mithilfe von Web Deploy auf deiner Site bereitzustellen. Du solltest die Web Deploy-Befehlszeile oder ein Skript dafür verwenden, insbesondere wenn du den Prozess automatisieren möchtest. Gute Nachrichten! Die Verwendung der Befehlszeilenoberfläche fühlt sich ganz intuitiv an, sobald du die grundlegenden Befehle beherrschst. Die Befehlsstruktur könnte folgendermaßen aussehen:
"msdeploy -verb
ync -source:package=PfadZuDeinerZipDatei.zip -dest:auto,computerName='https://deinserver:8172/msdeploy.axd?site=DeinSiteName',userName='DeinBenutzername',password='DeinPasswort',authtype='Basic'"
Natürlich musst du die Platzhalter mit deinen tatsächlichen Werten ersetzen. Es gab Zeiten, in denen ich ein einziges Zeichen im Befehl übersehen habe, und es einfach nicht funktioniert hat. Nimm dir einen Moment Zeit, um alles zu überprüfen, bevor du es ausführst.
Wenn du alles richtig gemacht hast, solltest du nun sehen, wie das Paket auf deiner IIS-Site bereitgestellt wird. Du erhältst in der Befehlszeile Echtzeit-Feedback, das den Fortschritt zeigt. Es ist sehr befriedigend zu sehen, wie die Protokolle aktualisiert werden, während Dateien übertragen und ausgeführt werden.
Sobald die Bereitstellung abgeschlossen ist, überprüfe ich immer die Site, um sicherzustellen, dass alles wie erwartet funktioniert. Manchmal können sogar kleinere Probleme auftauchen; fehlende Konfigurationen oder falsche Verweise im Code können zu Fehlern auf der Site führen. Ich teste lieber in verschiedenen Browsern und überprüfe die Funktionalität der Anwendung gründlich. Es geht darum, sicherzustellen, dass alles funktioniert, wie es sollte.
Wenn du nun in die Zukunft blickst, und diese ganze Prozedur noch weiter automatisieren möchtest, denke daran, Continuous Integration und Continuous Deployment (CI/CD)-Tools zu verwenden. Es gibt verschiedene Dienste wie Azure DevOps, GitHub Actions oder sogar Jenkins, die helfen können, die Bereitstellung mit Web Deploy zu optimieren. Das Einrichten kann ein wenig kompliziert werden, aber sobald es läuft, kann es dir viel manuelle Arbeit abnehmen.
Konfiguriere deine Pipeline, um das Projekt zu bauen, das Bereitstellungspaket zu erstellen und es mithilfe von Web Deploy auf IIS zu pushen. Jedes Mal, wenn du eine Änderung in dein Code-Repository pusht, könnte dies automatisch den Bereitstellungsprozess auslösen. Stell dir den Komfort vor, den du mit diesem Setup haben wirst!
Insgesamt, während das Einrichten von Web Deploy in IIS für die automatische Bereitstellung anfangs überwältigend erscheinen mag, erkennst du schnell, dass es darum geht, Schritte zu befolgen und dabei zu lernen. Zögere nicht, weiter zu experimentieren und den Prozess zu verfeinern. Je mehr du damit arbeitest, desto wohler wirst du dich fühlen. Also, packe es an, und bald wirst du Updates und neue Funktionen im Handumdrehen herausgeben! Bleib einfach geduldig und hartnäckig.
Ich hoffe, du fandest meinen Beitrag nützlich. Hast du übrigens eine gute Windows-Server-Backup-Lösung eingerichtet? In diesem Beitrag erkläre ich, wie man Windows Server richtig sichert.
Zuerst musst du sicherstellen, dass Web Deploy auf deinem Server installiert ist. Es ist unkompliziert, und ehrlich gesagt, du kannst den Installer einfach von der Microsoft-Website herunterladen. Nach dem Ausführen des Installers musst du möglicherweise einige spezifische Optionen in Bezug auf die Funktionen auswählen, die du aktivieren möchtest. Ich gehe normalerweise mit den Standard Einstellungen; das ist normalerweise ausreichend, es sei denn, du hast spezifische Anforderungen.
Sobald du Web Deploy installiert hast, ist der nächste Schritt, IIS auf deinem Computer zum Laufen zu bringen, falls du es noch nicht eingerichtet hast. Du kannst es über das Dialogfeld Windows-Features aktivieren. Ich musste einige zusätzliche Komponenten aktivieren, basierend darauf, was ich bereitgestellt habe, wie die Verwaltungstools und die ASP.NET-Funktionen, falls ich an einer ASP.NET-Anwendung gearbeitet habe.
Nachdem du sichergestellt hast, dass IIS läuft, lass uns eine Site hinzufügen, auf die Web Deploy das Bereitstellungspaket hochladen wird. Im IIS-Manager klickst du mit der rechten Maustaste auf "Sites" und wählst die Option, eine neue Site hinzuzufügen. Du musst einen Namen für deine Site angeben, einen physischen Pfad auswählen, wo sich deine Anwendung befindet, und eine Bindung festlegen, falls deine Anwendung einen bestimmten Port oder einen Hostnamen benötigt. Vergiss nicht zu überprüfen, ob der Anwendungspool richtig eingerichtet ist. Ich erstelle oder benutze normalerweise einen spezifischen Anwendungspool, der zum Framework passt, auf dem meine App basiert, wie .NET v4.0 für ASP.NET-Apps.
Jetzt, da wir die Site eingerichtet haben, ist der nächste Schritt, Web Deploy für diese Site zu aktivieren. Du musst sicherstellen, dass der Web Management Service (WMSVC) auf deinem Server läuft. Du kannst ihn im Dienste-Manager finden. Als ich anfing, es zu benutzen, habe ich oft vergessen, diesen Dienst zu starten, und dann habe ich mich gewundert, warum die Bereitstellung immer wieder fehlschlug. Es ist wichtig, damit Web Deploy mit dem IIS-Server kommunizieren kann.
Mit WMSVC, das läuft, öffne den IIS-Manager erneut und klicke auf deine Site. Suche nach dem Abschnitt Verwaltung; dort gibt es normalerweise eine Option mit der Aufschrift "Web Deploy-Publishing konfigurieren". Wenn du darauf klickst, erhältst du ein Dialogfeld, in dem du ein Publikationsprofil erstellen kannst. Hier musst du einige Details festlegen, wie einen Benutzernamen und ein Passwort. Ich verwende normalerweise ein Benutzerkonto, das die Berechtigung hat, die Site zu verwalten, aber ich versuche, aus Sicherheitsgründen das integrierte Administrator-Konto zu vermeiden.
Hier ist ein Tipp: Manchmal stoße ich auf Probleme, wenn ich mich nicht als autorisierter Benutzer anmelde. Stelle sicher, dass du Benutzer hinzufügst, die Web Deploy ordnungsgemäß zugreifen können, ohne zu viele unnötige Berechtigungen zu haben. Du möchtest dein Konto auf das beschränken, was es braucht.
Nachdem du die Publikationsdetails in IIS konfiguriert hast, solltest du sicherstellen, dass die entsprechenden Firewall-Regeln festgelegt sind, um den Datenverkehr zuzulassen. Web Deploy verwendet spezifische Ports, typischerweise 8172 für das WMSVC, also überprüfe deine Netzwerkeinstellungen. Ich erinnere mich, dass ich einmal eine Stunde mit der Fehlersuche verbracht habe, nur um herauszufinden, dass der Port von der Firewall blockiert wurde. Du solltest auch sicherstellen, dass die Ports auf jeder externen Firewall offen sind, wenn du auf einen Remote-Server bereitstellst.
Als nächstes lass uns ein Bereitstellungspaket für deine Webanwendung erstellen. Wenn du Visual Studio verwendest (was ich oft mache), kann dieser Teil super einfach sein. Klicke mit der rechten Maustaste auf dein Projekt, gehe zu "Veröffentlichen" und wähle die Option "Web Deploy-Paket". Dort kannst du einige Einstellungen ausfüllen. Ich wähle in der Regel "Als ZIP-Datei exportieren", da es die Verwaltung einfacher macht.
Sobald dein Paket erstellt ist, habe ich festgestellt, dass es eine gute Praxis ist, deine Ordnerstrukturen organisiert zu halten. Ich speichere diese Pakete normalerweise in einem speziellen Ordner, wo ich sie später leicht wiederfinden kann. Ich versuche, sie so zu benennen, dass die Versionsnummer oder das Datum enthalten ist, damit klar ist, mit welchem ich arbeite.
Sobald du dein Paket hast, ist es an der Zeit, es mithilfe von Web Deploy auf deiner Site bereitzustellen. Du solltest die Web Deploy-Befehlszeile oder ein Skript dafür verwenden, insbesondere wenn du den Prozess automatisieren möchtest. Gute Nachrichten! Die Verwendung der Befehlszeilenoberfläche fühlt sich ganz intuitiv an, sobald du die grundlegenden Befehle beherrschst. Die Befehlsstruktur könnte folgendermaßen aussehen:
"msdeploy -verb

Natürlich musst du die Platzhalter mit deinen tatsächlichen Werten ersetzen. Es gab Zeiten, in denen ich ein einziges Zeichen im Befehl übersehen habe, und es einfach nicht funktioniert hat. Nimm dir einen Moment Zeit, um alles zu überprüfen, bevor du es ausführst.
Wenn du alles richtig gemacht hast, solltest du nun sehen, wie das Paket auf deiner IIS-Site bereitgestellt wird. Du erhältst in der Befehlszeile Echtzeit-Feedback, das den Fortschritt zeigt. Es ist sehr befriedigend zu sehen, wie die Protokolle aktualisiert werden, während Dateien übertragen und ausgeführt werden.
Sobald die Bereitstellung abgeschlossen ist, überprüfe ich immer die Site, um sicherzustellen, dass alles wie erwartet funktioniert. Manchmal können sogar kleinere Probleme auftauchen; fehlende Konfigurationen oder falsche Verweise im Code können zu Fehlern auf der Site führen. Ich teste lieber in verschiedenen Browsern und überprüfe die Funktionalität der Anwendung gründlich. Es geht darum, sicherzustellen, dass alles funktioniert, wie es sollte.
Wenn du nun in die Zukunft blickst, und diese ganze Prozedur noch weiter automatisieren möchtest, denke daran, Continuous Integration und Continuous Deployment (CI/CD)-Tools zu verwenden. Es gibt verschiedene Dienste wie Azure DevOps, GitHub Actions oder sogar Jenkins, die helfen können, die Bereitstellung mit Web Deploy zu optimieren. Das Einrichten kann ein wenig kompliziert werden, aber sobald es läuft, kann es dir viel manuelle Arbeit abnehmen.
Konfiguriere deine Pipeline, um das Projekt zu bauen, das Bereitstellungspaket zu erstellen und es mithilfe von Web Deploy auf IIS zu pushen. Jedes Mal, wenn du eine Änderung in dein Code-Repository pusht, könnte dies automatisch den Bereitstellungsprozess auslösen. Stell dir den Komfort vor, den du mit diesem Setup haben wirst!
Insgesamt, während das Einrichten von Web Deploy in IIS für die automatische Bereitstellung anfangs überwältigend erscheinen mag, erkennst du schnell, dass es darum geht, Schritte zu befolgen und dabei zu lernen. Zögere nicht, weiter zu experimentieren und den Prozess zu verfeinern. Je mehr du damit arbeitest, desto wohler wirst du dich fühlen. Also, packe es an, und bald wirst du Updates und neue Funktionen im Handumdrehen herausgeben! Bleib einfach geduldig und hartnäckig.
Ich hoffe, du fandest meinen Beitrag nützlich. Hast du übrigens eine gute Windows-Server-Backup-Lösung eingerichtet? In diesem Beitrag erkläre ich, wie man Windows Server richtig sichert.