2016-03-28 147 views
0

我正嘗試將託管在Azure中的應用程序連接到也託管在Azure中的數據庫。我得到一個錯誤,請找到下面如何連接到Azure SQL數據庫?

「502 - Web服務器同時作爲 網關或代理服務器時收到了無效的響應。」

當應用程序試圖查詢數據庫。

託管的應用程序,並在Azure中的數據庫之前(應用程序工作在localhost)我的連接字符串到本地SQL Server數據庫是這樣的:

Data Source=DESKTOP-LCO4GKN;AttachDbFilename=|DataDirectory|BakaAppDb.mdf;Initial Catalog=BakaAppDb;Integrated Security=True 

遷移數據庫Azure和創建用戶後與登錄我這樣輸入連接字符串:

Server=tcp:betterorgappserver.database.windows.net;Database=BetterOrgAppDatabase_Dogfood;User ID=login1user;Password=*******; 

問題是應該如何連接字符串看起來像?我在我的應用中使用實體框架,如果這可能會影響它的外觀。

編輯

一段時間後,我「託管」來獲得錯誤指定爲用戶的登錄失敗

用戶登錄失敗「login1user1」。

這是堆棧跟蹤:

System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +347 
    System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +78 
    System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +191 
    System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +154 
    System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +21 
    System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +90 
    System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +217 
    System.Data.SqlClient.SqlConnection.Open() +96 
    System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.<Open>b__36(DbConnection t, DbConnectionInterceptionContext c) +10 
    and so on... 

我想這意味着我放棄特權用戶不正確。所以現在的問題是如何添加一個具有訪問數據庫權限的新用戶?

我根據這篇文章做到了:https://azure.microsoft.com/cs-cz/documentation/articles/sql-database-manage-logins/#granting-database-access-to-a-login

感謝

+0

你的錯誤消息並沒有提供太多的信息。請從您的web應用程序的Kudu控制檯獲取日誌文件 –

回答

1

編輯: 確保允許從數據庫服務器

而且您的應用程序的客戶端防火牆,你可以試試添加數據連接到您的Web應用程序: enter image description here

您可以看到連接對,如果你導航到SQL數據庫門戶ction字符串,連接字符串應該是這樣的:

服務器= TCP:yourserver.database.windows.net 1433;數據庫= yourdatabase;用戶 ID = yourlogin @ yourserver; Password = {yourpassword}; Encrypt = True; TrustServerCertificate = False;連接 Timeout = 30;

您可以查看在門戶網站服務器管理員登錄名以及enter image description here

+0

感謝您的提示。儘管如此,它給了我同樣的502錯誤。 –

+0

502通常由超時引起。在這種情況下,您需要做的是查看您的應用程序並嘗試確定應用程序的哪個部分太慢或正在觸發崩潰 –

+0

您是否允許來自數據庫服務器的客戶端防火牆適用於您的應用程序? –