Condividi tramite


Errore durante la connessione di una versione superiore a una versione inferiore di SQL Server usando SQL Server funzionalità del server collegato

Questo articolo consente di trovare la soluzione al problema di connettività usando SQL Server funzionalità del server collegato da windows server 2022 o versione successiva a un SQL Server ospitato in una versione precedente di Windows.

Sintomi

Questo problema può verificarsi se ci si connette da windows server 2022 o versioni successive a un SQL Server in esecuzione in una versione inferiore di Windows usando la funzionalità SQL Server Server collegato.

È possibile che venga visualizzato uno dei messaggi di errore seguenti:

[Microsoft OLE DB Driver per SQL Server]: Il client non è in grado di stabilire la connessione

[Microsoft OLE DB Driver per SQL Server]: Provider TCP: è stata forzata l'interruzione di una connessione esistente da parte dell'host remoto.

In questo caso, il server remoto riceve i messaggi TLS quando il server tenta di connettersi a SQL Server. Un avviso irreversibile viene generato e inviato all'estremità remota. Questo errore potrebbe terminare la connessione. Il codice di errore irreversibile definito dal protocollo TLS è 40. Lo stato dell'errore Schannel di Windows è 1205.

Causa

La presenza del supporto per TLS 1.2 può essere una possibile causa del problema di connessione al SQL Server 2012 con le macchine virtuali di Azure.

Risoluzione

Per risolvere questo problema, aggiungere le chiavi del Registro di sistema necessarie seguenti e aggiornare SQL Server a 2012 SP4 in modo che SQL Server 2022 possa connettersi ad esso.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2]

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server] "DisabledByDefault"=dword:00000000 "Enabled"=dword:00000001

Dopo aver installato gli aggiornamenti nel server basato su SQL Server 2012, potrebbe essere visualizzato il messaggio di errore seguente:

Il linguaggio dell'istanza di SQL Server MSSQLSERVER non corrisponde al linguaggio previsto dall'aggiornamento SQL Server. La lingua del prodotto SQL Server installato è <un'altra lingua> e la lingua SQL Server prevista è l'inglese (Stati Uniti).

Per risolvere questo errore, seguire questa procedura.

Nota

Assicurarsi di avere installato il Language Pack in inglese (Stati Uniti) prima di eseguire i comandi in questa procedura.

  1. Aprire PowerShell.

  2. Per ottenere l'elenco di lingue corrente, eseguire il comando seguente:

    Get-WinUserLanguageList

  3. Per impostare la lingua come inglese (Stati Uniti), eseguire il comando seguente:

    Set-WinUserLanguageList -LanguageList en-US

  4. Riavviare il server.

  5. Installare l'aggiornamento di SQL Server 2012 SP4.

  6. Riavviare di nuovo il server.

Per controllare la connettività tramite UDL, vedere Configurazione UDL (Universal Data Link).

Vedere anche

Una connessione esistente è stata chiusa forzatamente dall'host remoto (errore del sistema operativo 10054)