01-07-2024, 17:42
Um das WebSocket-Protokoll in IIS zu aktivieren und zu konfigurieren, ist es ziemlich unkompliziert, sobald du den Dreh raus hast. Ich habe diesen Prozess ein paar Mal durchlaufen, und ich denke, dass das Teilen einiger Einblicke dir definitiv helfen wird, es reibungslos für deine Anwendungen zum Laufen zu bringen.
Zunächst möchtest du sicherstellen, dass du mit der richtigen Version von IIS arbeitest. Das WebSocket-Protokoll wird in IIS 8 und höher unterstützt. Wenn du also eine ältere Version verwendest, musst du deinen Server zuerst upgraden. Wenn du dir nicht sicher bist, welche Version du verwendest, kannst du dies überprüfen, indem du den IIS-Manager öffnest und dir die aufgelisteten Funktionen ansiehst; das sollte dir einen Hinweis geben.
Sobald du bestätigt hast, dass du IIS 8 oder höher hast, kannst du mit der Aktivierung der WebSocket-Funktion beginnen. Dieser Teil ist entscheidend, denn wenn es nicht aktiviert ist, funktionieren deine WebSocket-Verbindungen nicht, und du wirst dich wundern, warum deine Echtzeitdatenaktualisierungen nicht angezeigt werden. Wenn du Windows Server verwendest, gehe einfach zum Server-Manager und scrolle nach unten, um Rollen und Funktionen hinzuzufügen.
Während des Installationsprozesses erreichst du den Abschnitt Funktionen. Du musst nach unten scrollen, bis du das WebSocket-Protokoll siehst. Kreuze es einfach an und folge den Installationsaufforderungen. Es dauert nur einen Moment, also nimm dir einen Kaffee, während du wartest, wenn du möchtest. Nachdem die Installation abgeschlossen ist, solltest du deinen Server neu starten, um alles zu klären, was dich später möglicherweise stören könnte.
Jetzt, wenn dein Server wieder in Betrieb ist, starte den IIS-Manager erneut. Du musst deine Anwendung oder die Website finden, für die du WebSocket aktivieren möchtest. Klicke darauf, um die Einstellungen für diese spezifische Site anzuzeigen. Hier passiert die Magie. Überprüfe, ob die WebSocket-Funktion jetzt für deine Site verfügbar ist. Du solltest einen Eintrag in der Funktionsansicht sehen. Wenn er nicht vorhanden ist, solltest du vielleicht deine Schritte aus der Installationsphase zurückverfolgen, um sicherzustellen, dass alles in Ordnung ist.
Nachdem du sichergestellt hast, dass WebSockets aktiviert sind, musst du jetzt die Bindungen für deine Site konfigurieren. Dies ist wichtig, um sicherzustellen, dass deine Anwendung über WebSockets korrekt kommuniziert. Gehe zu den Bindungseinstellungen der Site, die du in der rechten Seitenleiste unter "Site bearbeiten" findest. Wähle dort "Bindungen". Du kannst dann, falls notwendig, eine neue Bindung hinzufügen. In der Regel wirst du hier entweder HTTP oder HTTPS verwenden.
Wenn du HTTPS verwenden möchtest, was ich aus Sicherheitsgründen sehr empfehle, benötigst du ein gültiges SSL-Zertifikat für deine Site. Dies stellt sicher, dass du keine sensiblen Daten exponierst, während Nutzer mit deiner Echtzeitanwendung interagieren. Nachdem du bestätigt hast, dass deine Bindungen in Ordnung sind, kannst du zu den Einstellungen deiner Anwendung übergehen.
Vielleicht möchtest du einen Blick in die web.config-Datei der Anwendung werfen. Diese XML-Datei ist entscheidend für die Konfiguration des Verhaltens deiner Anwendung. Du musst sicherstellen, dass der WebSocket-Handler richtig konfiguriert ist. Wenn du ein bestimmtes Framework oder eine Bibliothek für WebSockets wie Socket.IO oder SignalR verwendest, sieh in deren Dokumentation nach, ob spezielle Einstellungen vorhanden sind, die du zur web.config hinzufügen musst. In der Regel könntest du etwas Ähnliches wie das Folgende zu deiner web.config hinzufügen:
<system.webServer>
<handlers>
<add name="WebSocketHandler" path="yourpath" verb="*" type="YourNamespace.WebSocketHandler, YourAssembly" resourceType="Unspecified" />
</handlers>
</system.webServer>
Stelle sicher, dass du yourpath durch den Pfad ersetzt, den du für deine WebSocket-Verbindungen verwenden möchtest, und passe den Typ entsprechend deiner tatsächlichen Handler-Implementierung an. Du möchtest vielleicht auch mit den Timeout-Einstellungen hier herumexperimentieren. WebSockets arbeiten über eine persistente Verbindung, also möchtest du sicherstellen, dass die Servereinstellungen diese Verbindungen nicht versehentlich zu früh trennen.
Neben den Änderungen an der web.config solltest du, wenn deine Anwendung ein Framework verwendet, die Konfigurationsdateien überprüfen, um sicherzustellen, dass der Transportmodus auf WebSocket eingestellt ist. Manchmal wird standardmäßig auf andere Modi wie Long Polling zurückgegriffen, die zwar technisch funktionieren können, aber nicht so effizient sind.
Sobald du all das erledigt hast, kannst du deine Anwendung starten, um zu überprüfen, ob alles wie erwartet funktioniert. Öffne deine Entwicklerkonsole und initiiere eine WebSocket-Verbindung zu deinem Server. Wenn du dies über JavaScript machst, würde es etwa so aussehen:
let socket = new WebSocket('ws://yourdomain/yourpath');
socket.onopen = function() {
console.log("Mit dem WebSocket-Server verbunden.");
};
socket.onmessage = function(event) {
console.log('Nachricht vom Server ', event.data);
};
socket.onerror = function(error) {
console.error("WebSocket-Fehler: ", error);
};
Du kannst yourdomain und yourpath entsprechend ersetzen. Wenn du das ausführst, achte auf die Nachrichten in der Konsole. Wenn du die Nachricht "Mit dem WebSocket-Server verbunden." siehst, läuft alles gut! Wenn nicht, könnte das ein Zeichen dafür sein, dass etwas auf dem Weg nicht richtig konfiguriert wurde, also überprüfe noch einmal diese Bindungen und deine web.config-Einstellungen.
Eine Sache, die ich beim Arbeiten mit WebSockets und IIS gelernt habe, ist, immer ein Auge auf die Einstellungen des Anwendungspools zu haben. Du solltest sicherstellen, dass dein Anwendungspool den integrierten Pipeline-Modus verwendet. Wenn er auf den klassischen Modus eingestellt ist, könntest du auf Probleme stoßen, da WebSockets den integrierten Modus benötigen, um richtig zu funktionieren. Dies zu ändern ist so einfach wie mit der rechten Maustaste auf deinen Anwendungspool in IIS zu klicken, die "Erweiterten Einstellungen" auszuwählen und den verwalteten Pipeline-Modus auf integriert zu wechseln.
Apropos Anwendungspools, es ist auch eine gute Idee, ihre Leistung zu überwachen und sie zu recyclen, wenn du irgendwelche Speicherlecks oder Leistungseinbußen bemerkst. WebSocket-Verbindungen können länger bestehen bleiben als typische HTTP-Verbindungen, daher ist eine effiziente Ressourcenverwaltung für Echtzeitanwendungen entscheidend.
Schließlich, wenn du in einer Produktionsumgebung arbeitest, vergiss nicht, die Netzwerkseite zu berücksichtigen. Stelle sicher, dass deine Firewalls und Netzgeräte WebSocket-Verkehr auf den Ports zulassen, die du verwendest. Du möchtest sicherstellen, dass deine Benutzer tatsächlich verbinden können, ohne durch Sicherheitsmaßnahmen blockiert zu werden.
Das ist im Wesentlichen alles! Sobald du diese Schritte befolgt hast, solltest du bereit sein. Das nächste Mal, wenn du WebSockets in IIS einrichten musst, wird es so natürlich erscheinen wie das Atmen. Wenn du auf weitere Probleme stößt, zögere nicht, um Hilfe bei der Fehlersuche zu bitten. Manchmal sind es nur diese kleinen Dinge, die dich aus der Bahn werfen können. Viel Glück mit deinen Echtzeitanwendungen!
Ich hoffe, du fandest meinen Beitrag nützlich. Übrigens, hast du eine gute Backup-Lösung für Windows Server? In diesem Beitrag erkläre ich, wie man Windows Server richtig sichert.
Zunächst möchtest du sicherstellen, dass du mit der richtigen Version von IIS arbeitest. Das WebSocket-Protokoll wird in IIS 8 und höher unterstützt. Wenn du also eine ältere Version verwendest, musst du deinen Server zuerst upgraden. Wenn du dir nicht sicher bist, welche Version du verwendest, kannst du dies überprüfen, indem du den IIS-Manager öffnest und dir die aufgelisteten Funktionen ansiehst; das sollte dir einen Hinweis geben.
Sobald du bestätigt hast, dass du IIS 8 oder höher hast, kannst du mit der Aktivierung der WebSocket-Funktion beginnen. Dieser Teil ist entscheidend, denn wenn es nicht aktiviert ist, funktionieren deine WebSocket-Verbindungen nicht, und du wirst dich wundern, warum deine Echtzeitdatenaktualisierungen nicht angezeigt werden. Wenn du Windows Server verwendest, gehe einfach zum Server-Manager und scrolle nach unten, um Rollen und Funktionen hinzuzufügen.
Während des Installationsprozesses erreichst du den Abschnitt Funktionen. Du musst nach unten scrollen, bis du das WebSocket-Protokoll siehst. Kreuze es einfach an und folge den Installationsaufforderungen. Es dauert nur einen Moment, also nimm dir einen Kaffee, während du wartest, wenn du möchtest. Nachdem die Installation abgeschlossen ist, solltest du deinen Server neu starten, um alles zu klären, was dich später möglicherweise stören könnte.
Jetzt, wenn dein Server wieder in Betrieb ist, starte den IIS-Manager erneut. Du musst deine Anwendung oder die Website finden, für die du WebSocket aktivieren möchtest. Klicke darauf, um die Einstellungen für diese spezifische Site anzuzeigen. Hier passiert die Magie. Überprüfe, ob die WebSocket-Funktion jetzt für deine Site verfügbar ist. Du solltest einen Eintrag in der Funktionsansicht sehen. Wenn er nicht vorhanden ist, solltest du vielleicht deine Schritte aus der Installationsphase zurückverfolgen, um sicherzustellen, dass alles in Ordnung ist.
Nachdem du sichergestellt hast, dass WebSockets aktiviert sind, musst du jetzt die Bindungen für deine Site konfigurieren. Dies ist wichtig, um sicherzustellen, dass deine Anwendung über WebSockets korrekt kommuniziert. Gehe zu den Bindungseinstellungen der Site, die du in der rechten Seitenleiste unter "Site bearbeiten" findest. Wähle dort "Bindungen". Du kannst dann, falls notwendig, eine neue Bindung hinzufügen. In der Regel wirst du hier entweder HTTP oder HTTPS verwenden.
Wenn du HTTPS verwenden möchtest, was ich aus Sicherheitsgründen sehr empfehle, benötigst du ein gültiges SSL-Zertifikat für deine Site. Dies stellt sicher, dass du keine sensiblen Daten exponierst, während Nutzer mit deiner Echtzeitanwendung interagieren. Nachdem du bestätigt hast, dass deine Bindungen in Ordnung sind, kannst du zu den Einstellungen deiner Anwendung übergehen.
Vielleicht möchtest du einen Blick in die web.config-Datei der Anwendung werfen. Diese XML-Datei ist entscheidend für die Konfiguration des Verhaltens deiner Anwendung. Du musst sicherstellen, dass der WebSocket-Handler richtig konfiguriert ist. Wenn du ein bestimmtes Framework oder eine Bibliothek für WebSockets wie Socket.IO oder SignalR verwendest, sieh in deren Dokumentation nach, ob spezielle Einstellungen vorhanden sind, die du zur web.config hinzufügen musst. In der Regel könntest du etwas Ähnliches wie das Folgende zu deiner web.config hinzufügen:
<system.webServer>
<handlers>
<add name="WebSocketHandler" path="yourpath" verb="*" type="YourNamespace.WebSocketHandler, YourAssembly" resourceType="Unspecified" />
</handlers>
</system.webServer>
Stelle sicher, dass du yourpath durch den Pfad ersetzt, den du für deine WebSocket-Verbindungen verwenden möchtest, und passe den Typ entsprechend deiner tatsächlichen Handler-Implementierung an. Du möchtest vielleicht auch mit den Timeout-Einstellungen hier herumexperimentieren. WebSockets arbeiten über eine persistente Verbindung, also möchtest du sicherstellen, dass die Servereinstellungen diese Verbindungen nicht versehentlich zu früh trennen.
Neben den Änderungen an der web.config solltest du, wenn deine Anwendung ein Framework verwendet, die Konfigurationsdateien überprüfen, um sicherzustellen, dass der Transportmodus auf WebSocket eingestellt ist. Manchmal wird standardmäßig auf andere Modi wie Long Polling zurückgegriffen, die zwar technisch funktionieren können, aber nicht so effizient sind.
Sobald du all das erledigt hast, kannst du deine Anwendung starten, um zu überprüfen, ob alles wie erwartet funktioniert. Öffne deine Entwicklerkonsole und initiiere eine WebSocket-Verbindung zu deinem Server. Wenn du dies über JavaScript machst, würde es etwa so aussehen:
let socket = new WebSocket('ws://yourdomain/yourpath');
socket.onopen = function() {
console.log("Mit dem WebSocket-Server verbunden.");
};
socket.onmessage = function(event) {
console.log('Nachricht vom Server ', event.data);
};
socket.onerror = function(error) {
console.error("WebSocket-Fehler: ", error);
};
Du kannst yourdomain und yourpath entsprechend ersetzen. Wenn du das ausführst, achte auf die Nachrichten in der Konsole. Wenn du die Nachricht "Mit dem WebSocket-Server verbunden." siehst, läuft alles gut! Wenn nicht, könnte das ein Zeichen dafür sein, dass etwas auf dem Weg nicht richtig konfiguriert wurde, also überprüfe noch einmal diese Bindungen und deine web.config-Einstellungen.
Eine Sache, die ich beim Arbeiten mit WebSockets und IIS gelernt habe, ist, immer ein Auge auf die Einstellungen des Anwendungspools zu haben. Du solltest sicherstellen, dass dein Anwendungspool den integrierten Pipeline-Modus verwendet. Wenn er auf den klassischen Modus eingestellt ist, könntest du auf Probleme stoßen, da WebSockets den integrierten Modus benötigen, um richtig zu funktionieren. Dies zu ändern ist so einfach wie mit der rechten Maustaste auf deinen Anwendungspool in IIS zu klicken, die "Erweiterten Einstellungen" auszuwählen und den verwalteten Pipeline-Modus auf integriert zu wechseln.
Apropos Anwendungspools, es ist auch eine gute Idee, ihre Leistung zu überwachen und sie zu recyclen, wenn du irgendwelche Speicherlecks oder Leistungseinbußen bemerkst. WebSocket-Verbindungen können länger bestehen bleiben als typische HTTP-Verbindungen, daher ist eine effiziente Ressourcenverwaltung für Echtzeitanwendungen entscheidend.
Schließlich, wenn du in einer Produktionsumgebung arbeitest, vergiss nicht, die Netzwerkseite zu berücksichtigen. Stelle sicher, dass deine Firewalls und Netzgeräte WebSocket-Verkehr auf den Ports zulassen, die du verwendest. Du möchtest sicherstellen, dass deine Benutzer tatsächlich verbinden können, ohne durch Sicherheitsmaßnahmen blockiert zu werden.
Das ist im Wesentlichen alles! Sobald du diese Schritte befolgt hast, solltest du bereit sein. Das nächste Mal, wenn du WebSockets in IIS einrichten musst, wird es so natürlich erscheinen wie das Atmen. Wenn du auf weitere Probleme stößt, zögere nicht, um Hilfe bei der Fehlersuche zu bitten. Manchmal sind es nur diese kleinen Dinge, die dich aus der Bahn werfen können. Viel Glück mit deinen Echtzeitanwendungen!
Ich hoffe, du fandest meinen Beitrag nützlich. Übrigens, hast du eine gute Backup-Lösung für Windows Server? In diesem Beitrag erkläre ich, wie man Windows Server richtig sichert.