Zeitweilige Verbindungsfehler treten bei Verwendung des SQLCMD-Hilfsprogramms auf
Dieser Artikel hilft Ihnen bei der Behebung von problemen mit der intermittierenden Verbindung "Betriebssystemfehler 10054", die auftreten, wenn Sie das Befehlszeilentool SQLCMD verwenden.
Fehler
Sie erhalten die folgenden Warnmeldungen und Fehlermeldungen:
WARNUNG: proc_procname zurückgegebene HResult-0x2746, Ebene 16, Status 1
TCP-Anbieter: Eine vorhandene Verbindung wurde vom Remotehost forcibly geschlossen.
SQLCMD.EXE : Sqlcmd: Fehler: Microsoft SQL Server Native Client 10.0 : Client kann keine Verbindung herstellen
Eine mögliche Ursache dieser Fehler ist ein nicht unterstützter Treiber.
Zu berücksichtigende Fragen
Überprüfen Sie die folgenden Szenarien, um zu ermitteln, ob ein Problem mit Ihrem Problem übereinstimmt:
Sie sammeln eine Netzwerkablaufverfolgung und erfahren, dass TLS 1.0 und 1.1 deaktiviert sind und TLS 1.2 aktiviert ist. Auf dem Server, auf dem SQL Server ausgeführt wird, sind TLS 1.0, 1.1 und 1.2 auf dem Anwendungsserver aktiviert.
Sie führen einen UDL-Test auf dem Anwendungsserver aus, indem Sie sowohl den Microsoft OLE DB-Anbieter für SQL Server als auch den SNAC 11-Anbieter verwenden. Die Verbindung schlägt fehl. Sie erhalten auch eine Meldung, die besagt, dass der Treiber "Microsoft OLE DB-Anbieter für SQL Server" veraltet ist und TLS 1.2 nicht unterstützt.
Der Anwendungsserver verwendet SQL Server Native Client 11, um die ODBC-Datenquelle erfolgreich zu testen. Wenn SQL Server Native Client 10.0 nicht unterstützt wird, wird möglicherweise die folgende Fehlermeldung angezeigt:
Fehler bei der Verbindung mit dem SQL-Status: '08001' SQL Server-Fehler: 10054 [Microsoft][SQL Server Native Client 10.0]TCP-Anbieter: Eine vorhandene Verbindung wurde vom Remotehost eindeutig geschlossen. [Microsoft][SQL Server Native Client 10.0] Der Client kann keine Verbindung herstellen.
Diese Meldung wird möglicherweise angezeigt, da der Anwendungsserver die ältere Version des Diffie-Hellman-Algorithmus (v1) verwendet und SQL Server die neuere Version (v2) verwendet. Diese Übereinstimmung führt zu zeitweiligen TLS-Fehlern.
Lösung
Führen Sie die folgenden Schritte aus, um diese Probleme zu beheben:
Geben Sie sql Server Native Client 11 im Verbindungszeichenfolge an.
Notiz
Microsoft unterstützt SNAC 11 nicht mehr. Wenn während der Verwendung von SNAC 11 Probleme auftreten, müssen Sie ein Upgrade auf eine unterstützte Version des Microsoft-Treibers durchführen, bevor der technische Support bereitgestellt werden kann.
Aktualisieren Sie den Anwendungstreiber auf einen unterstützten Treiber.
Verwenden Sie MSOLEDBSQL v18 oder ODBC v17, wenn Sie keine Verschlüsselung für die Verbindung verwenden. Wenn Sie die Verschlüsselung für die Verbindung auf dem Anwendungsserver verwenden, verwenden Sie MSOLEDBSQL v19 oder ODBC v18. Standardmäßig sind diese Treiber zusammen mit der Verschlüsselung enthalten. Weitere Informationen finden Sie in den folgenden Artikeln:
Siehe auch
Eine vorhandene Verbindung wurde vom Remotehost forcibly geschlossen (Betriebssystemfehler 10054)