Udostępnij za pomocą


MSSQLSERVER_17182

Dotyczy:SQL Server

Szczegóły

Atrybut Wartość
Nazwa produktu SQL Server
Identyfikator zdarzenia 17182
Źródło zdarzenia MSSQLSERVER
Składnik SQLEngine
Nazwa symboliczna INIT_TDSSNICLIENT
Tekst wiadomości Inicjowanie TDSSNIClient nie powiodło się z powodu błędu 0x%lx, kod stanu 0x%lx. Przyczyna: %S_MSG %.*ls

Wyjaśnienie

Po uruchomieniu programu SQL Server jednym z kroków, które należy wykonać, jest zainicjowanie odbiornika strumienia danych tabelarycznych (TDS) i bibliotek sieciowych w celu akceptowania połączeń przychodzących. Jeśli inicjowanie zakończy się niepowodzeniem, zostanie zgłoszony błąd 17182. Działania inicjowania obejmują uruchamianie odbiornika warstwy SNI/TDS, konfigurowania lub inicjowania portów, protokołów, kontekstu uwierzytelniania SSPI , szyfrowania (TLS/SSL) itd.

Zazwyczaj ten błąd jest zgłaszany wraz z innymi błędami MSSQLSERVER_17826 i MSSQLSERVER_17120

Komunikat o błędzie 17182 zawiera trzy symbole zastępcze, które są wypełniane dynamicznie w oparciu o problem, który wystąpił. "Niepowodzenie z błędem 0x%lx" wartość szesnastkowa jest podstawowym błędem systemu operacyjnego, który wystąpił. Jest to najważniejsza część błędu. Tekst po "Reason:" to wiadomość sms skojarzona z tym błędem systemu operacyjnego. Aby zilustrować, oto przykład tego błędu:

   Error: 17182, Severity: 16, State: 1.
   TDSSNIClient initialization failed with error 0x139f, status code 0x80. Reason: Unable to initialize SSL support. The group or resource is not in the correct state to perform the requested operation.

W tym przypadku błąd systemu operacyjnego = 0x139f, czyli 5023 w przecinku. Jeśli przejdziesz do wiersza polecenia i wpiszesz net helpmsg 5023 , aby wyszukać ten błąd systemu operacyjnego, zobaczysz: "Grupa lub zasób nie jest w prawidłowym stanie, aby wykonać żądaną operację". Ten tekst jest widoczny po "Reason:" w przykładzie.

Trzeci symbol zastępczy to kod stanu. Jest to wartość wewnętrzna wskazująca, który składnik inicjowania zakończył się niepowodzeniem. Może to pomóc firmie Microsoft w rozwiązywaniu problemu bardziej szczegółowo, jeśli jest to konieczne. Poniżej przedstawiono kilka typowych kodów stanu, które zostały zaobserwowane:

Kod stanu Znaczenie
0x01 Klient SNI
0x04 Brak odbiornika (puste)
0x0a Dostawca TCP/IP
0x40 Dostawca pamięci udostępnionej
0x50 Nazwany dostawca potoku
0x80 Dostawca SSL

Przyczyna

Przyczyną może być wiele przyczyn tego błędu, ale wszystkie odnoszą się do inicjowania bibliotek sieciowych lub szyfrowania w warstwie interfejsu sieciowego programu SQL Server (SNI). Oto kilka przykładów:

  • Nieprawidłowo skonfigurowane protokoły sieciowe
    • nie wybrano żadnego protokołu
    • Określono nieprawidłowe porty TCP
  • Nieprawidłowo skonfigurowano protokół TLS/SSL na potrzeby szyfrowania sieci
    • nieprawidłowy certyfikat,
    • nieprawidłowa wersja protokołu TLS
    • nieprawidłowa lub brakująca konfiguracja klucza rejestru
  • Problem z systemem operacyjnym z protokołami lub protokołami TLS/SSL

Akcja użytkownika

  1. Rozwiązywanie problemów z błędnie skonfigurowanymi protokołami Typowy problem, który został zgłoszony, obejmuje błędnie skonfigurowane protokoły programu SQL Server. Aby uzyskać więcej informacji, zobacz Nie można uruchomić programu SQL Server, jeśli wszystkie protokoły są wyłączone. W dzienniku błędów można obserwować następującą sekwencję błędów:

    Error: 17182, Severity: 16, State: 1.
    TDSSNIClient initialization failed with error 0xd, status code 0x4. Reason: **All protocols are disabled. The data is invalid**.
    Error: 17182, Severity: 16, State: 1.
    TDSSNIClient initialization failed with error 0xd, status code 0x1. Reason: Initialization failed with an infrastructure error. Check for previous errors. The data is    invalid.
    Error: 17826, Severity: 18, State: 3.
    Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in the    error log.
    Error: 17120, Severity: 16, State: 1.
    SQL Server could not spawn FRunCommunicationsManager thread. Check the SQL Server error log and the operating system error log for information about possible related    problems.
    
  2. Rozwiązywanie problemów z konfiguracją i aktualizacją protokołu TLS Inny typowy problem, który został zgłoszony, obejmuje konfigurację protokołu TLS na serwerze uniemożliwiającą programowi SQL Server utworzenie zadania komunikacji w tle.

    Error: 26011, Severity: 16, State: 1.
    The server was unable to initialize encryption because of a problem with a security library. The security library may be missing. Verify that security.dll exists on  the    system.
    Error: 17182, Severity: 16, State: 1.
    TDSSNIClient initialization failed with error 0x139f, status code 0x80. Reason: Unable to initialize SSL support. The group or resource is not in the correct state  to    perform the requested operation.
    Error: 17182, Severity: 16, State: 1.
    TDSSNIClient initialization failed with error 0x139f, status code 0x1. Reason: Initialization failed with an infrastructure error. Check for previous errors. The group  or    resource is not in the correct state to perform the requested operation.
    Error: 17826, Severity: 18, State: 3.
    Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in  the    error log.
    Error: 17120, Severity: 16, State: 1.
    SQL Server could not spawn FRunCommunicationsManager thread. Check the SQL Server error log and the Windows event logs for information about possible related problems.
    

    Upewnij się, że protokół TLS został poprawnie skonfigurowany dla programu SQL Server. Aby uzyskać informacje na temat wymaganych aktualizacji, zobacz Obsługa protokołu TLS 1.2 dla programu Microsoft SQL Server.

  3. Rozwiązywanie problemów z certyfikatami szyfrowania Innym typowym problemem jest błędna konfiguracja certyfikatów TLS/SSL prowadzących do braku możliwości uruchamiania i uruchamiania wątku programu SQL Server.

    Error: 26014, Severity: 16, State: 1.
    Unable to load user-specified certificate [Cert Hash(sha1) "%hs"]. The server will not accept a connection. You should verify that the certificate is correctly installed.    See "Configuring Certificate for Use by SSL" in Books Online.
    
    Error: 17182, Severity: 16, State: 1.
    TDSSNIClient initialization failed with error 0x80092004, status code 0x80. Reason: Unable to initialize SSL support. Cannot find object or property.
    
    Error: 17826, Severity: 18, State: 3.
    Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in the    error log.
    
    Error: 17120, Severity: 16, State: 1.
    SQL Server could not spawn FRunCommunicationsManager thread. Check the SQL Server error log and the Windows event logs for information about possible related problems.
    

    Aby uzyskać więcej informacji, zobacz Usługa programu SQL Server nie może uruchomić się po skonfigurowaniu wystąpienia do używania certyfikatu secure Sockets Layer

  4. Użyj programu SQL Server Configuration Manager, aby zweryfikować, czy protokoły sieciowe zostały poprawnie skonfigurowane. Aby uzyskać więcej informacji, zobacz Włączanie lub wyłączanie protokołu sieciowego serwera

  5. Użyj programu SQL Server Configuration Manager 2019 lub nowszego, aby zarządzać certyfikatami i je weryfikować. Aby uzyskać więcej informacji, zobacz Zarządzanie certyfikatami (SQL Server Configuration Manager)