Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dieser Artikel enthält Hilfe zum Beheben eines Problems, bei dem Sie einen ausgeschlossenen Port nicht erneut binden können, obwohl die option SO_REUSEADDR festgelegt ist.
Ursprüngliche KB-Nummer: 3039044
Symptome
Gehen Sie davon aus, dass Sie einen Port ausschließen, indem Sie den folgenden Befehl auf einem Computer ausführen, auf dem Windows Server 2012 R2, Windows Server 2012 oder Windows Server 2008 R2 ausgeführt wird:
netsh int ipv4 add excludedportrange protocol = tcp startport = Integer numberofports = 1
Gehen Sie außerdem davon aus, dass Sie den SO_REUSEADDR Socket an einen bestimmten TCP-Port auf dem Computer binden. Wenn Sie versuchen, den SO_REUSEADDR Socket erneut an den TCP-Port zu binden, schlägt die Bindung fehl, und Sie erhalten den Fehler "WSAEACCES (10013)".
Wenn Sie daher eine Anwendung verwenden, die die beiden Bindungen in Windows Server 2012 R2, Windows Server 2012 oder Windows Server 2008 R2 aufruft, kann sie nicht ordnungsgemäß funktionieren.
Notiz
- Standardmäßig kann Windows Server 2008 R2 den
netsh
Befehl nicht verwenden, um Ports auszuschließen. Nachdem Sie jedoch Hotfix-2665809 angewendet haben, unterstützt das Betriebssystem diese Funktion. - Dieses Problem tritt in Windows Server 2008 oder Windows Server 2003 nicht auf.
Ursache
Dieses Problem tritt aufgrund eines Problems im tcpip.sys Treiber auf. Insbesondere wurde das WIEDERVERWENDUNG-Flag vom RESERVED-Flag überschrieben, wenn der tcpip.sys Treiber einen ausgeschlossenen Port bindet.
Problemumgehung
Wenden Sie eine der folgenden Methoden an, um dieses Problem zu umgehen:
- Verwenden Sie einen Port, der nicht im standardmäßigen dynamischen Portbereich enthalten ist (von 49.152 bis 65.535), und geben Sie den Port nicht als ausgeschlossenen Port an, indem Sie den
netsh
Befehl ausführen. - Verwenden Sie die Funktionen CreatePersistentTcpPortReservation und LookupPersistentTcpPortReservation , um einen Port zu reservieren.
Status
Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.
Weitere Informationen
Weitere Informationen zur option SO_REUSEADDR finden Sie in der Setockopt-Funktion .