2016-03-28 180 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

您是否允许来自数据库服务器的客户端防火墙适用于您的应用程序? –