簡體   English   中英

無法通過用於SQL Server和SQL Native Client的ODBC驅動程序11連接到Azure數據庫

[英]Cannot Connect to Azure Database through ODBC Driver 11 for SQL Server and SQL Native Client

我可以通過SQL Server 2014輕松訪問Azure SQL數據庫,但是當我嘗試通過ODBC Driver 11 for SQL Server將PHP(Laravel)We​​b應用程序連接到Azure SQL Server並嘗試使用SQL Native Client 11時,它給了我不同異常類型如下

  • [Microsoft] [用於SQL Server的ODBC驅動程序11]從服務器接收結果時發生了傳輸級錯誤(提供者:TCP Provider,錯誤:0-信號燈超時時間已到期。)
  • [Microsoft] [SQL Server的ODBC驅動程序11]從服務器接收結果時,發生了傳輸級錯誤。 (提供程序:TCP提供程序,錯誤:0-遠程主機強行關閉了現有連接。)
  • [Microsoft] [用於SQL Server的ODBC驅動程序11] System.Data.SqlClient.SqlException:超時已過期。 在操作完成之前超時或服務器沒有響應。 該語句已終止。
  • [Microsoft] [用於SQL Server的ODBC驅動程序11]嘗試連接
    失敗,因為關聯方在
    一段時間,或由於連接而建立的連接失敗
    主機未響應。
  • [Microsoft] [用於SQL Server的ODBC驅動程序11]命名管道提供程序:無法打開與SQL Server [53]的連接。 ,SQLConnect中的SQL狀態08001

我已經閱讀了這篇Technet 文章 ,並成功地完成了所有步驟,直到步驟3。

但是當我跟蹤路由到服務器時,它給了我以下結果

跟蹤路由結果

因此,我面臨的問題是由於我收到請求超時的原因。 並且我已經配置了服務器防火牆並添加了客戶端IP。

我認為您可以參考文章從服務器接收結果時發生傳輸級錯誤 人們有同樣的錯誤。

可能的解決方案是

1)檢查該鏈接服務器的提供程序。

2)為該特定提供程序啟用“允許進程內”選項,以解決提供程序屬性中的問題。

3)對於連接字符串中的“數據包大小= xxxxx”,請嘗試使該“ xxxxx”更短。

4)嘗試在網絡接口上禁用“ IP卸載”。

5)重新啟動虛擬Stdio。

6)停止IIS Express並重新運行您的應用程序。

希望這會有所幫助。

我使用odbc_connect進行了快速測試,例如:

odbc_connect("Driver={SQL Server Native Client 11.0};Server=tcp:<sqlsrv_name>.database.windows.net,1433;Database=<database>;Uid=<user>@<sqlsrv_name>;Pwd=<password>;Encrypt=yes;Connection Timeout=30;", "<user>@<sqlsrv_name>", "<password>");

但是,我無法重現您的問題。 您能否創建一個新的Azure SQL Server,並嘗試從本地腳本連接到這個新的Azure SQL Server?

如果仍然出現此問題,則您的本地環境可能存在問題。 您可以檢查網絡,因為您的日志顯示了超時異常。

解決了這個問題。

我選擇的計划出了問題,這不足以滿足我的需求。

我選擇了配置更高的計划,幸運的是它起作用了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM