如何将我的节点应用程序连接到我的azure sql数据库?

时间:2015-11-28 06:53:25

标签: sql node.js azure tedious

我已经使用了microsoft提供的这个教程,我可以连接到数据库但是当我到达它的SELECT部分​​时,我收到了这个错误:

{[RequestError: Requests can only be made in the LoggedIn state, not the SentLogin7WithStandardLogin state]

message:'Requests can only be made in the LoggedIn state, not the SentLogin7WithStandardLogin state', code:'EINAVALIDSTATE'}

我正在使用npm modulte Tedious,就像导游所说,但我无法解决这个问题。

这是教程Link.

2 个答案:

答案 0 :(得分:0)

这是一个已知的繁琐问题,其中一个最常见的因素是在Azure SQL上启用Windows身份验证。

1 - 不要在域属性中使用FQDN。如果是“company.com”,请使用“公司” 2 - 资本化似乎也很重要。使用所有CAPS域名 3 - 不要使用合格的用户名(即“user.name@company.com”)只是“user.name”

生成的Config可能看起来像

var config = {
    "userName": "user.name",
    "password": "password",
    "server": "servername",
    "domain": "DOMAIN_NAME_CAPITALIZED_AND_NOT_FQDM",
    "options": {
        "encrypt": false
    }
};

答案 1 :(得分:0)

如果我从Azure SQL入站规则中删除当前的客户端IP,我可能会遇到同样的问题。主要问题是您的客户端IP被Azure SQL防火墙阻止。

登录Azure manage portal,单击列表页面中的Azure SQL数据库实例,单击Azure SQL服务器:

enter image description here

CONFIGURE 页面中,您可以在“允许的IP地址”部分下的列表中看到您当前的客户端IP,单击箭头按钮在Azure SQL Server的防火墙规则中添加您的IP,单击“保存”底部导航栏中的按钮以保存修改。 enter image description here

然后你可以再次测试你的代码。