nodejs mssql中的SQL Server连接超时错误
Posted
技术标签:
【中文标题】nodejs mssql中的SQL Server连接超时错误【英文标题】:SQL Server connection timeout error in nodejs mssql 【发布时间】:2018-06-20 17:35:25 【问题描述】:执行几次 SQL 语句后总是出现以下错误。
我正在使用
var sql = require("mssql");
(node:12240) [DEP0064] DeprecationWarning: tls.createSecurePair() 是 已弃用。请改用 tls.Socket。警告.js:18(节点:12240) UnhandledPromiseRejectionWarning:未处理的承诺拒绝 (拒绝 id:2):ConnectionError:无法连接到 Server-100:在 15000 毫秒内未定义 warning.js:18(节点:12240)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。在 未来,未处理的承诺拒绝将终止 具有非零退出代码的 Node.js 进程。警告.js:18(节点:12240) UnhandledPromiseRejectionWarning:未处理的承诺拒绝 (拒绝 id:4):ConnectionError:无法连接到 Server-100:undefined in 15000ms warning.js:18
ConnectionError: Failed to connect to server-100:undefined in 15000ms
at Connection.tedious.once.err (d:\API\node_modules\mssql\lib\tedious.js:216:17)
at Object.onceWrapper (events.js:316:30)
at emitOne (events.js:115:13)
at Connection.emit (events.js:210:7)
at Connection.connectTimeout (d:\API\node_modules\tedious\lib\connection.js:634:12)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
以下是代码:
module.exports = function (data)
return new Promise(function (resolve, reject)
var database = new sql.ConnectionPool(
user: 'sa',
password: 'password',
server: 'Server-100',
database: 'SQLDB',
options:
encrypt: true,
useUTC: true
,
pool:
max: 10,
min: 0,
idleTimeoutMillis: 60000
);
database.connect().then(function ()
var req = new sql.Request(database);
req.input(data.parameter.Name, data.parameter.DataType, data.parameter.Value);
req.execute(data.procedureName).then(function (result)
database.close();
return resolve(result);
).catch(function (err)
database.close();
return reject(err);
);
).catch(function (err)
database.close();
return reject(err);
);
);
发生异常:ConnectionError ConnectionError: Failed to 连接到 10.0.2.183:undefined in 15000ms 在 Connection.tedious.once.err (d:\Projects\node_modules\mssql\lib\tedious.js:216:17) 在 Object.onceWrapper (events.js:316:30) 在 emitOne (events.js:115:13) 在 Connection.emit (events.js:210:7) 在 Connection.connectTimeout (d:\Projects\node_modules\tedious\lib\connection.js:634:12) 在 ontimeout (timers.js:469:11) 在 tryOnTimeout (timers.js:304:5) 在 Timer.listOnTimeout (timers.js:264:5)
你能建议这里有什么问题吗?
【问题讨论】:
【参考方案1】:在服务器位置使用本地主机并尝试。
var database = new sql.ConnectionPool(
user: 'sa',
password: 'password',
port:"1433",
server: 'localhost', //if your connecting to localhost\instance make sure you have the service 'SQL Server Browser' running.
database: 'SQLDB',
options:
encrypt: true,
useUTC: true
,
pool:
max: 10,
min: 0,
idleTimeoutMillis: 60000
);
【讨论】:
我在不同的机器上有sql server @FurqanMisarwala 然后假设 server-100 是您的实例名称。确保您的服务“SQL Server Browser”正在运行 600 次调用后,IP 地址超时连接错误:无法连接到 10.0.2.183:15000 毫秒内未定义 在我看来,idelTimeoutMillis 不太可能对连接超时有任何影响......或者会吗?请您在回答中解释一下以上是关于nodejs mssql中的SQL Server连接超时错误的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JDBC 连接到 SQL Server 2008 数据库?
通过 ODBC 连接到 SQL Server 的 Access 中的 MS SQL 查询
将 Django 连接到 MSSQL Server 2012 时出错