我正在尝试使用Azure Cloud中的配置连接到SQL Server数据库:
var config = {
user: UserName,
password: Password,
server: Server IP,
dialect:'mssql',
options: {database: DBName}
};
sql.connect(config, function (err) {
//Code
}
代码位于node.js中,并且在我的远程桌面上运行正常。但是在我在Azure Cloud中托管它之后,我一直在遇到这个错误
ConnectionError:无法连接到{SQLServerDB} - 连接EACCES Connection.tedious.once.err上的{SQLServerDB}(D:\ home \ site \ wwwroot \ node_modules \ mssql \ lib \ tedious.js:216:17) 在Connection.g(events.js:291:16) 在emitOne(events.js:96:13) 在Connection.emit(events.js:188:7) 在Connection.socketError(D:\ home \ site \ wwwroot \ node_modules \ tedious \ lib \ connection.js:1004:14) 在D:\ home \ site \ wwwroot \ node_modules \ tedious \ lib \ connection.js:869:25 在Socket.onError(D:\ home \ site \ wwwroot \ node_modules \ tedious \ lib \ connector.js:49:9) 在emitOne(events.js:96:13) 在Socket.emit(events.js:188:7) 在emitErrorNT(net.js:1276:8)代码:'ESOCKET',originalError:{ConnectionError:无法连接到{SQLServerDB} - 在ConnectionError连接EACCES {SQLServerDB}(D:\ home \ site \ wwwroot \ node_modules \ tedious \ lib \ errors.js:12:12) 在Connection.socketError(D:\ home \ site \ wwwroot \ node_modules \ tedious \ lib \ connection.js:1004:30) 在D:\ home \ site \ wwwroot \ node_modules \ tedious \ lib \ connection.js:869:25 在Socket.onError(D:\ home \ site \ wwwroot \ node_modules \ tedious \ lib \ connector.js:49:9) 在emitOne(events.js:96:13) 在Socket.emit(events.js:188:7) 在emitErrorNT(net.js:1276:8) at _combinedTickCallback(internal / process / next_tick.js:74:11) at process._tickDomainCallback(internal / process / next_tick.js:122:9) 消息:'无法连接到{SQLServerDB} - 连接EACCES {SQLServerDB}, 代码:'ESOCKET'},名称:'ConnectionError'}
SQL Server正在使用默认端口并启用了TCP / IP。
答案 0 :(得分:2)
根据错误信息,表明它无法连接到SQL Server。 我假设您正在使用本地SQL Server。
在这种情况下,默认情况下,webapp无法连接本地SQL服务器。您可以使用Hybrid connections来确保可以连接到本地SQL服务器。我还建议您可以使用Azure SQL database来替换本地SQL Server。