Tedious: ConnectionError : Échec de la connexion à {{host}} : 1433 - Impossible d'appeler l'écriture après la destruction d'un flux

Créé le 29 juil. 2019  ·  14Commentaires  ·  Source: tediousjs/tedious

Erreur lors de la connexion à la base de données (Sql Server 2008 R2)

J'utilise "mssql": "^5.1.0"

Je peux me connecter à localhost et à SQL Server 2017

[Nest] 29632 - 29/07/2019, 21:34 [TypeOrmModule] Impossible de se connecter à la base de données. Nouvelle tentative (1)... +876 ms
ConnectionError : Échec de la connexion à {{host}} : 1433 - Impossible d'appeler l'écriture après la destruction d'un flux
à la connexion.(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 (interne/streams/destroy.js:107:12)
à onwriteError (_stream_writable.js:432:5)
à onwrite (_stream_writable.js:459:5)
à doWrite (_stream_writable.js:413:11)

Veuillez suggérer une solution :)

Idle

Commentaire le plus utile

oublie! encrypt , non crypté

Tous les 14 commentaires

Salut @bj9215 ,

Quelle version de fastidieux utilisez-vous ? Mssql package.json utilise une version obsolète de fastidieux (la version fastidieuse actuelle est la v6.2.0). Essayez de le mettre à jour et voyez si cela vous aide ? :)

Sur quelle version de Node.js utilisez-vous ? Le cryptage est-il activé ?

Lorsque vous essayez de vous connecter à une ancienne version de SQL Server, vous devrez probablement modifier les paramètres de cryptage pour utiliser une ancienne version de TLS et utiliser une suite de chiffrement prise en charge à la fois sur SQL Server 2008 et la version Node.js que vous utilisent.

@ bj9215 Avez-vous toujours ce problème ?

J'ai un problème similaire avec "ennuyeux": "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

oublie! encrypt , non crypté

@bj9215 Fermeture pour le moment. N'hésitez pas à rouvrir si vous rencontrez toujours ce problème !

Un million de merci !!

Je suis tombé sur le même problème. On dirait que node-mssql a changé la valeur par défaut de chiffrement de false à true dans ce PR :
https://github.com/tediousjs/node-mssql/pull/977

Le commentaire de @ataft m'a également aidé à résoudre mon problème - le réglage de "crypter" sur false a résolu mon problème.

@crazyx13th Merci, cela m'a aidé

oublie! encrypt , non ~crypté~

C'est ce que si vous essayez de réparer sur 1 semaine.
Le message d'erreur est très inintelligible.

Sur quelle version de Node.js utilisez-vous ? Le cryptage est-il activé ?

Lorsque vous essayez de vous connecter à une ancienne version de SQL Server, vous devrez probablement modifier les paramètres de cryptage pour utiliser une ancienne version de TLS et utiliser une suite de chiffrement prise en charge à la fois sur SQL Server 2008 et la version Node.js que vous utilisent.

Merci. Cela a résolu le problème. je viens d'ajouter le drapeau _

Bonjour, j'ai la même erreur et j'ai déjà essayé de faire ce qu'ils ont commenté précédemment et je reçois toujours la même erreur
ConnectionError : Échec de la connexion à {host} : 1433 - Impossible d'appeler l'écriture après la destruction d'un flux

Ceci est ma chaîne de connexion.

const config = {
utilisateur : 'utilisateur',
mot de passe : 'mot de passe',
serveur : 'hôte',
base de données : 'name-dataBase',
bassin: {
max : 230,
min : 0
}
} ;

Je viens d'utiliser ce paramètre dans les options de connexion à la base de données, options : { encrypt : false }

Cette page vous a été utile?
0 / 5 - 0 notes