Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł zawiera pomoc w rozwiązaniu problemu polegającego na tym, że nie można ponownie powiązać wykluczonego portu, mimo że jest ustawiona opcja SO_REUSEADDR.
Oryginalny numer KB: 3039044
Symptomy
Załóżmy, że port został wyklucz, uruchamiając następujące polecenie na komputerze z systemem Windows Server 2012 R2, Windows Server 2012 lub Windows Server 2008 R2:
netsh int ipv4 add excludedportrange protocol = tcp startport = Integer numberofports = 1
Ponadto załóżmy, że powiążesz gniazdo SO_REUSEADDR z określonym portem TCP na komputerze. W takiej sytuacji, gdy spróbujesz ponownie powiązać gniazdo SO_REUSEADDR z portem TCP, powiązanie zakończy się niepowodzeniem i zostanie wyświetlony błąd "WSAEACCES (10013)".
W związku z tym, jeśli używasz aplikacji, która wywołuje te dwa powiązania w systemie Windows Server 2012 R2, Windows Server 2012 lub Windows Server 2008 R2, nie może działać poprawnie.
Uwaga 16.
- Domyślnie system Windows Server 2008 R2 nie może używać
netsh
polecenia do wykluczania portów. Jednak po zastosowaniu poprawki 2665809 system operacyjny obsługuje tę funkcję. - Ten problem nie występuje w systemie Windows Server 2008 lub Windows Server 2003.
Przyczyna
Ten problem występuje z powodu problemu w sterowniku tcpip.sys. W szczególności flaga REUSE została zastąpiona przez flagę RESERVED, gdy sterownik tcpip.sys wiąże wykluczony port.
Rozwiązanie
Aby obejść ten problem, użyj jednej z następujących metod:
- Użyj portu, który nie jest uwzględniony w domyślnym zakresie portów dynamicznych (od 49 152 do 65 535) i nie określaj portu jako wykluczonego portu, uruchamiając
netsh
polecenie . - Aby zarezerwować port, użyj funkcji CreatePersistentTcpPortReservation i LookupPersistentTcpPortReservation.
Stan
Firma Microsoft potwierdziła, że jest to usterka występująca w produktach firmy Microsoft wymienionych w części "Ma zastosowanie do:".
Więcej informacji
Zobacz funkcję setsockopt, aby dowiedzieć się więcej o SO_REUSEADDR opcji.