Tedious: ConnectionError: No se pudo conectar a {{host}}: 1433 - No se puede llamar a escribir después de que se destruyó una transmisión

Creado en 29 jul. 2019  ·  14Comentarios  ·  Fuente: tediousjs/tedious

Error al conectarse a la base de datos (Sql Server 2008 R2)

Estoy usando "mssql": "^ 5.1.0"

Puedo conectarme a localhost y SQL Server 2017

[Nest] 29632 - 29/07/2019, 9:34 PM [TypeOrmModule] No se puede conectar a la base de datos. Reintentando (1) ... + 876ms
ConnectionError: No se pudo conectar a {{host}}: 1433 - No se puede llamar a escribir después de que se destruyó una transmisión
en la conexión.(nrwlnode_modulesmssqllibtedious.js: 244: 17)
en Object.onceWrapper (events.js: 288: 20)
en Connection.emit (events.js: 200: 13)
en Connection.socketError (nrwlnode_modulestediouslibconnection.js: 1098: 12)
en Socket.(nrwlnode_modulestediouslibconnection.js: 971: 14)
en Socket.emit (events.js: 205: 15)
en errorOrDestroy (interno / streams / destroy.js: 107: 12)
en onwriteError (_stream_writable.js: 432: 5)
en onwrite (_stream_writable.js: 459: 5)
en doWrite (_stream_writable.js: 413: 11)

Por favor sugiera alguna solución :)

Idle

Comentario más útil

¡olvídalo! encrypt , no cifrado

Todos 14 comentarios

Hola @ bj9215 ,

¿Qué versión de tedious estás usando? Mssql package.json está usando una versión desactualizada de tedious (la versión actual de tedious es v6.2.0). Intente actualizar eso y vea si ayuda. :)

¿En qué versión de Node.js estás ejecutando? ¿Tiene el cifrado habilitado?

Mientras intenta conectarse a una versión anterior de SQL Server, lo más probable es que necesite modificar la configuración de cifrado para usar una versión anterior de TLS y usar un conjunto de cifrado que sea compatible con SQL Server 2008 y la versión de Node.js. están usando.

@ bj9215 ¿

Tengo un problema similar con "tedioso": "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

¡olvídalo! encrypt , no cifrado

@ bj9215 Cerrando por ahora. ¡No dudes en volver a abrir si aún tienes este problema!

¡¡Un millón de gracias !!

Me encontré con el mismo problema. Parece que node-mssql cambió el cifrado predeterminado de falso a verdadero en este PR:
https://github.com/tediousjs/node-mssql/pull/977

El comentario de @ataft también me ayudó a resolver mi problema: configurar "cifrar" en falso solucionó mi problema.

@ crazyx13th Gracias, esto me ayudó

¡olvídalo! encrypt , no ~ encriptado ~

Esto es lo que sucede si intenta arreglarlo en 1 semana.
El mensaje de error es muy ininteligible.

¿En qué versión de Node.js estás ejecutando? ¿Tiene el cifrado habilitado?

Mientras intenta conectarse a una versión anterior de SQL Server, lo más probable es que necesite modificar la configuración de cifrado para usar una versión anterior de TLS y usar un conjunto de cifrado que sea compatible con SQL Server 2008 y la versión de Node.js. están usando.

Gracias. Esto resolvió el problema. Acabo de agregar la bandera _

Hola tengo el mismo error y ya trate de hacer lo que han comentado anterior mente y me sigue saliendo el mismo error
ConnectionError: Failed to connect to {host}:1433 - Cannot call write after a stream was destroyed

Esta es mi cadena de conexión.

const config = {
user: 'user',
password: 'password',
server: 'host',
database: 'name-dataBase',
pool:{
max: 230,
min: 0
}
};

Acabo de usar este parámetro en las opciones de conexión de la base de datos, opciones: {cifrar: falso}

¿Fue útil esta página
0 / 5 - 0 calificaciones