Tedious: ConnectionError: Verbindung zu {{host}} fehlgeschlagen:1433 - Schreiben kann nicht aufgerufen werden, nachdem ein Stream zerstört wurde

Erstellt am 29. Juli 2019  ·  14Kommentare  ·  Quelle: tediousjs/tedious

Fehler beim Herstellen einer Verbindung zur Datenbank (Sql Server 2008 R2)

Ich verwende "mssql": "^5.1.0"

Ich kann eine Verbindung zu localhost und SQL Server 2017 herstellen

[Nest] 29632 - 29.07.2019, 21:34 [TypeOrmModule] Es kann keine Verbindung zur Datenbank hergestellt werden. Wiederholen (1)... +876ms
ConnectionError: Verbindung zu {{host}} fehlgeschlagen:1433 - Schreiben kann nicht aufgerufen werden, nachdem ein Stream zerstört wurde
bei Verbindung.(nrwlnode_modulesmssqllibtedious.js:244:17)
bei Object.onceWrapper (events.js:288:20)
bei Connection.emit (events.js:200:13)
at Connection.socketError (nrwlnode_modulestediouslibconnection.js:1098:12)
am Sockel.(nrwlnode_modulestediouslibconnection.js:971:14)
bei Socket.emit (events.js:205:15)
bei errorOrDestroy (internal/streams/destroy.js:107:12)
bei onwriteError (_stream_writable.js:432:5)
bei onwrite (_stream_writable.js:459:5)
bei doWrite (_stream_writable.js:413:11)

Bitte eine Lösung vorschlagen :)

Idle

Hilfreichster Kommentar

Vergiss es! encrypt , nicht verschlüsselt

Alle 14 Kommentare

Hallo @bj9215 ,

Welche Version von langweilig verwendest du? Mssql package.json verwendet eine veraltete Version von tedious (die aktuelle tedious-Version ist v6.2.0). Versuchen Sie, das zu aktualisieren und sehen Sie, ob es hilft? :)

Welche Version von Node.js verwenden Sie? Hast du die Verschlüsselung aktiviert?

Wenn Sie versuchen, eine Verbindung zu einer älteren Version von SQL Server herzustellen, müssen Sie höchstwahrscheinlich die Verschlüsselungseinstellungen anpassen, um eine ältere Version von TLS zu verwenden und eine Verschlüsselungssuite zu verwenden, die sowohl von SQL Server 2008 als auch von der Node.js-Version unterstützt wird benutzen.

@ bj9215 Haben Sie dieses Problem immer noch?

Ich habe ein ähnliches Problem mit "mühsam": "6.6.2",

const config = {
    server: 'local-sql-host',
    authentication: {
        type: 'default',
        options: {
            userName: process.env.AUTH_LOCAL_USR,
            password: process.env.AUTH_LOCAL_PWD,
        },
    },
    options: {
        database: 'DATABASE_NAME',
        encrypted: false,
    },
}
debug connected to {local-sql-host}:1433
debug State change: Connecting -> SentPrelogin
debug State change: SentPrelogin -> SentTLSSSLNegotiation
debug Failed to connect to {local-sql-host}:1433 - Cannot call write after a stream was destroyed
connect $db> test.(): ConnectionError: Failed to connect to {local-sql-host}:1433 - Cannot call write after a stream was de
stroyed
    at ConnectionError (C:\workspace\api-v3\dist\webpack:\node_modules\tedious\lib\errors.js:13:1)
    at Connection.socketError (C:\workspace\api-v3\dist\webpack:\node_modules\tedious\lib\connection.js:1258:1)
    at Socket.<anonymous> (C:\workspace\api-v3\dist\webpack:\node_modules\tedious\lib\connection.js:1093:1)
    at Socket.emit (events.js:215:7)
    at errorOrDestroy (internal/streams/destroy.js:108:12)
    at onwriteError (_stream_writable.js:446:5)
    at onwrite (_stream_writable.js:473:5)
    at doWrite (_stream_writable.js:427:11)
    at writeOrBuffer (_stream_writable.js:415:5)
    at Socket.Writable.write (_stream_writable.js:305:11) {
  message: 'Failed to connect to {local-sql-host}:1433 - Cannot call write after a stream was destroyed',
  code: 'ESOCKET'
}
debug State change: SentTLSSSLNegotiation -> Final
debug Connection lost - 99404:error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol:c:\ws\deps\o
penssl\openssl\ssl\statem\statem_lib.c:1929:

ConnectionError: Connection lost - 99404:error:1425F102:SSL routines:ssl_choose_client_version:unsupported protocol:c
:\ws\deps\openssl\openssl\ssl\statem\statem_lib.c:1929:

    at ConnectionError (C:\workspace\api-v3\dist\webpack:\node_modules\tedious\lib\errors.js:13:1)
    at Connection.socketError (C:\workspace\api-v3\dist\webpack:\node_modules\tedious\lib\connection.js:1262:1)
    at Socket.<anonymous> (C:\workspace\api-v3\dist\webpack:\node_modules\tedious\lib\connection.js:1093:1)
    at Socket.emit (events.js:210:5)
    at emitErrorNT (internal/streams/destroy.js:92:8)
    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)
[ERROR] 12:23:11 ConnectionError

Vergiss es! encrypt , nicht verschlüsselt

@ bj9215 Vorerst geschlossen . Fühlen Sie sich frei, wieder zu öffnen, wenn dieses Problem weiterhin besteht!

Eine Million Dank!!

Ich bin auf das gleiche Problem gestoßen. Sieht so aus, als hätte node-mssql den Verschlüsselungsstandard in diesem PR von false auf true geändert:
https://github.com/tediousjs/node-mssql/pull/977

Der Kommentar von

@crazyx13. Danke, das hat mir geholfen

Vergiss es! encrypt , nicht ~verschlüsselt~

Dies ist, wenn Sie versuchen, eine Woche zu reparieren.
Fehlermeldung ist sehr unverständlich.

Welche Version von Node.js verwenden Sie? Hast du die Verschlüsselung aktiviert?

Wenn Sie versuchen, eine Verbindung zu einer älteren Version von SQL Server herzustellen, müssen Sie höchstwahrscheinlich die Verschlüsselungseinstellungen anpassen, um eine ältere Version von TLS zu verwenden und eine Verschlüsselungssuite zu verwenden, die sowohl von SQL Server 2008 als auch von der Node.js-Version unterstützt wird benutzen.

Vielen Dank. Dies hat das Problem gelöst. Ich habe gerade _ --tls-min-v1.0 _ Flag hinzugefügt

Hallo, ich habe den gleichen Fehler und habe bereits versucht, das zu tun, was sie zuvor kommentiert haben, und ich erhalte immer den gleichen Fehler
ConnectionError: Verbindung zu {host} fehlgeschlagen: 1433 - Schreiben kann nicht aufgerufen werden, nachdem ein Stream zerstört wurde

Das ist mein Verbindungsstring.

const config = {
Benutzer: 'Benutzer',
Passwort: 'Passwort',
Server: 'Host',
Datenbank: 'Name-Datenbank',
Schwimmbad: {
max: 230,
min: 0
}
};

Ich habe diesen Parameter gerade in den Datenbankverbindungsoptionen verwendet, Optionen: { encrypt: false }

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen