Condividi tramite


MSSQLSERVER_17182

Si applica a: SQL Server

Dettagli

Attributo Valore
Nome prodotto SQL Server
ID evento 17182
Origine evento MSSQLSERVER
Componente SQLEngine
Nome simbolico INIT_TDSSNICLIENT
Testo del messaggio Inizializzazione di TDSSNIClient non riuscita con errore 0x%lx, codice di stato 0x%lx. Motivo: %S_MSG %.*ls

Spiegazione

All'avvio di SQL Server, uno dei passaggi necessari consiste nell'inizializzare un listener TDS (Tabular Data Stream) e librerie di rete per accettare le connessioni in ingresso. Se l'inizializzazione ha esito negativo, viene generato l'errore 17182. Le attività di inizializzazione includono l'avvio del listener SNI layer/TDS, la configurazione o l'inizializzazione di porte, protocolli, contesto di autenticazione SSPI , crittografia (TLS/SSL) e così via.

In genere questo errore viene generato insieme ad altri errori MSSQLSERVER_17826 e MSSQLSERVER_17120

Il messaggio di errore 17182 contiene tre segnaposto compilati dinamicamente in base al problema che si è verificato. Il valore esadecimale "failed with error 0x%lx" è l'errore del sistema operativo sottostante che si è verificato. Questa è la parte più importante dell'errore. Il testo dopo "Reason: " è il messaggio di testo associato a questo errore del sistema operativo. Per illustrare, di seguito è riportato un esempio di questo errore:

   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.

In questo caso l'errore del sistema operativo = 0x139f, ovvero 5023 in decimale. Se si passa a un prompt dei comandi e si digita net helpmsg 5023 per cercare questo errore del sistema operativo, si otterrà: "Il gruppo o la risorsa non è nello stato corretto per eseguire l'operazione richiesta". Questo testo è quello visualizzato dopo "Reason:" nell'esempio.

Il terzo segnaposto è il codice di stato. Si tratta di un valore interno che indica quale componente nell'inizializzazione non è riuscito. Ciò può aiutare Microsoft a risolvere il problema in modo più dettagliato, se necessario. Ecco alcuni codici di stato comuni osservati:

Codice di stato significato
0x01 SNI Client
0x04 Nessun listener (vuoto)
0x0a Provider TCP/IP
0x40 Provider di memoria condivisa
0x50 Provider Named Pipe
0x80 Provider SSL

Causa

Possono verificarsi diversi motivi per cui può verificarsi questo errore, ma tutti sono correlati all'inizializzazione di librerie di rete o alla crittografia a livello SNI (SQL Server Network Interface). Di seguito sono riportati alcuni esempi.

  • Protocolli di rete configurati in modo errato
    • nessun protocollo selezionato
    • Vengono specificate porte TCP non valide
  • TLS/SSL configurato in modo errato per la crittografia di rete
    • certificato non valido,
    • versione TLS non valida
    • configurazione della chiave del Registro di sistema non valida o mancante
  • Problema del sistema operativo con protocolli o TLS/SSL

Azione utente

  1. Risolvere i protocolli configurati in modo errato Un problema comune segnalato include protocolli di SQL Server configurati in modo errato. Per maggiori informazioni, consultare la sezione Impossibile avviare SQL Server se tutti i protocolli sono disabilitati. È possibile osservare la sequenza di errori seguente nel log degli errori:

    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. Risolvere i problemi di configurazione e aggiornamento di TLS Un altro problema comune segnalato include la configurazione TLS nel server che impedisce a SQL Server di creare un'attività di comunicazione in background.

    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.
    

    Assicurarsi di configurare TLS correttamente per SQL Server. Per informazioni sugli aggiornamenti necessari, vedere Supporto di TLS 1.2 per Microsoft SQL Server

  3. Risolvere i problemi relativi ai certificati di crittografia Un altro problema comune è la configurazione errata dei certificati TLS/SSL che causano l'avvio e l'avvio di un thread in 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.
    

    Per altre informazioni, vedere Il servizio SQL Server non può essere avviato dopo la configurazione di un'istanza per l'uso di un certificato Secure Sockets Layer

  4. Usare Gestione configurazione SQL Server per verificare che i protocolli di rete siano stati configurati correttamente. Per altre informazioni, vedere Abilitare o disabilitare un protocollo di rete del server

  5. Usare Gestione configurazione SQL Server 2019 o versione successiva per gestire i certificati e convalidarli. Per altre informazioni, vedere Gestione certificati (Gestione configurazione SQL Server)