2013-04-16 54 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 - 所以並沒有發現我的存儲過程等非常令人沮喪。希望這可以幫助某人。