Tedious: ConnectionError: Не удалось подключиться к {{host}}: 1433 - Невозможно вызвать запись после уничтожения потока.

Созданный на 29 июл. 2019  ·  14Комментарии  ·  Источник: tediousjs/tedious

Ошибка при подключении к базе данных (Sql Server 2008 R2)

Я использую "mssql": "^ 5.1.0"

Я могу подключиться к localhost и SQL Server 2017

[Nest] 29632 - 29.07.2019, 21:34 [TypeOrmModule] Невозможно подключиться к базе данных. Повторная попытка (1) ... + 876 мс
ConnectionError: Не удалось подключиться к {{host}}: 1433 - Невозможно вызвать запись после уничтожения потока.
при подключении.(nrwlnode_modulesmssqllibtedious.js: 244: 17)
в Object.onceWrapper (events.js: 288: 20)
в Connection.emit (events.js: 200: 13)
в Connection.socketError (nrwlnode_modulestediouslibconnection.js: 1098: 12)
в Socket.(nrwlnode_modulestediouslibconnection.js: 971: 14)
в Socket.emit (events.js: 205: 15)
при errorOrDestroy (внутренний / потоки / destroy.js: 107: 12)
в onwriteError (_stream_writable.js: 432: 5)
при onwrite (_stream_writable.js: 459: 5)
в doWrite (_stream_writable.js: 413: 11)

Пожалуйста, предложите какое-нибудь решение :)

Самый полезный комментарий

забудь это! encrypt , не зашифровано

Все 14 Комментарий

Привет @ bj9215!

Какую версию утомительного вы используете? Mssql package.json использует устаревшую версию утомительного (текущая утомительная версия - v6.2.0). Попробуйте обновить это и посмотрите, поможет ли это? :)

На какой версии Node.js вы работаете? У вас включено шифрование?

Поскольку вы пытаетесь подключиться к более старой версии SQL Server, вам, скорее всего, потребуется настроить параметры шифрования, чтобы использовать более старую версию TLS и использовать набор шифров, который поддерживается как в SQL Server 2008, так и в версии Node.js, которую вы используете. используют.

@ bj9215 У вас все еще есть эта проблема?

У меня похожая проплем остроумие "нудная": "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

забудь это! encrypt , не зашифровано

@ bj9215 На данный момент закрывается. Не стесняйтесь повторно открыть, если у вас все еще есть эта проблема!

Миллион благодарностей !!

Я столкнулся с той же проблемой. Похоже, что node-mssql изменил шифрование по умолчанию с false на true в этом PR:
https://github.com/tediousjs/node-mssql/pull/977

Комментарий @ataft помог мне решить мою проблему - установка для параметра " false устранила мою проблему.

@ crazyx13th Спасибо, мне это помогло

забудь это! encrypt , не ~ зашифровано ~

Вот что, если пытаешься исправить за 1 неделю.
Сообщение об ошибке очень неразборчиво.

На какой версии Node.js вы работаете? У вас включено шифрование?

Поскольку вы пытаетесь подключиться к более старой версии SQL Server, вам, скорее всего, потребуется настроить параметры шифрования, чтобы использовать более старую версию TLS и использовать набор шифров, который поддерживается как в SQL Server 2008, так и в версии Node.js, которую вы используете. используют.

Спасибо. Это решило проблему. я только что добавил флаг _

Здравствуйте, у меня такая же ошибка, и я уже пытался сделать то, что они прокомментировали ранее, и я продолжаю получать ту же ошибку
ConnectionError: Не удалось подключиться к {host}: 1433 - Невозможно вызвать запись после того, как поток был уничтожен

Это моя строка подключения.

const config = {
пользователь: 'пользователь',
пароль: 'пароль',
сервер: 'хост',
база данных: 'имя-база данных',
бассейн: {
макс: 230,
мин: 0
}
};

Я просто использовал этот параметр в параметрах подключения к базе данных, параметры: {encrypt: false}

Была ли эта страница полезной?
0 / 5 - 0 рейтинги