2013-04-16 59 views
3

我有一个SQL Azure数据库,我试图从Azure Linux VM中运行的NodeJS应用程序连接到该数据库。当我在本地SQL数据库/和NodeJS的本地机器上时,一切正常。然而,当我从我的虚拟机上运行,​​我得到下面的输出(我的跟踪输出加上繁琐的调试事件):如何从NodeJS/Tedious连接到SQL Azure?

connected to XXXXXXX.database.windows.net:1433 
State change: Connecting -> SentPrelogin 
State change: SentPrelogin -> SentLogin7WithStandardLogin 
connection to XXXXXXX.database.windows.net:1433 closed 
State change: SentLogin7WithStandardLogin -> Final 
Writing CSV files.... 
connection to XXXXXXX.database.windows.net:1433 closed 
State change: Final -> Final 
All Done! 

的问题是没有错误的要求不断提高,但连接似乎被自动关闭。

关于这里可能发生的事情或者我如何得到实际错误的想法?

回答

8

确定 - 解决它得益于this thread

有2个问题:

  1. SQL Azure的需要加密的连接,所以你需要加密:真正的连接选项
  2. 将用户名配置选项需要数据库限定的名称(例如[email protected]

只是为了防止其他人遇到此问题:)

+0

你应该接受你的答案,人们往往会回答已经接受答案的问题。 – booyaa

+0

我会的,但是SO需要2天时间才能接受我自己的回答 –

+0

啊不知道:o) – booyaa

0

我遇到了我认为值得分享的第三个问题。由于一些防火墙/ isp/port/etc问题,我必须设置一个本地SQL实例来进行调试。

当我在主树下使用'数据库'参数时,SQL Server 2014的本地实例工作。但是,Azure实例只有在'选项'下才会使用'数据库'参数。

"sqlserverConfig": { 
    "userName": "[email protected]", 
    "password": "SomePW", 
    "server": "someazureserver.database.windows.net", 
    "options": { 
     "encrypt": true, 
     "database": "SomeDatabase" 
    } 
    } 

对于我来说,我所观察到的现象是,我是连接到默认的主DB - 所以并没有发现我的存储过程等非常令人沮丧。希望这可以帮助某人。