我想将我的ASP.NET应用程序部署到MS Azure(和SQL Azure)。该应用程序使用代码优先。
发布我的应用程序并调用相应的URL后,我收到一条错误消息:
用户'myUserName'登录失败。已为此会话分配了跟踪 ID为'8beaff1c-629f-45b3-991b-228425bc30a4'。提供此跟踪ID 在需要帮助时获得客户支持。
我很确定这是由于我的配置文件中的连接字符串。
以下是我的web.config中的相关摘录:
<connectionStrings>
<add name="dbContext"
connectionString="server(local)\SQLEXPRESS;database=myDB;integrated security=true;MultipleActiveResultSets=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
这是相应的web.release.config:
<connectionStrings>
<add name="ApplicationServices" connectionString="Server=tcp:xt1rnwvt89.database.windows.net;Database=myDB;User ID=myUserName@xt1rnwvt89;Password=myPassword;Trusted_Connection=False;Encrypt=True;MultipleActiveResultSets=True;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
<add name="dbContext" connectionString="Server=tcp:xt1rnwvt89.database.windows.net,1433;Database=myDB;User ID=myUserName@xt1rnwvt89;Password=myPassword;Trusted_Connection=False;Encrypt=True;MultipleActiveResultSets=True;" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
我不确定我是否同时需要ApplicationServices
和dbContext
设置?
当然,上面给出的凭证是匿名的。但真正的凭据应该是正确的,因为我可以使用SQL Server Management Studio(SSMS)成功连接到我的Azure数据库。
我已经检查了几个文档和教程,如https://www.windowsazure.com/en-us/develop/net/tutorials/web-app-with-sql-azure/,但我找不到解决方案。一切似乎都没问题。
有人有想法吗?
答案 0 :(得分:2)
这是我使用的连接字符串:
<add name="dbContext" connectionString="Server=tcp:xxxxxxxx.database.windows.net;Database=xxxxxxxx;User ID=xxxxxxx@xxxxxxxxx;Password=xxxxxxxxxx;Trusted_Connection=False;Encrypt=True;" providerName="System.Data.SqlClient" />
还要确保设置正确的防火墙设置:
如果您想确保使用正确的连接,可以从管理门户网站询问正确的连接。只需单击左侧的数据库名称,即可在右侧面板上看到连接字符串。
修改的 此外,在使用Code First时,请确保数据库尚不存在,因为数据库丢弃不起作用。
答案 1 :(得分:2)
想到我会分享这个。我遇到了同样的问题,并在管理门户中添加了数据库作为链接资源,云服务&gt;仪表板&gt;添加链接资源,为我解决了。在我弄清楚之前,我的HOURS用户错误登录失败了!!
答案 2 :(得分:2)
我遇到了同样的问题(用户登录失败&#39; myUserName)尝试在我的webmatrix azure web应用程序与我的azure sql数据库之间建立连接。
使用sql server management studio连接到azure sql数据库没有问题。所以我知道我的用户名和密码都没问题。
我尝试将Web应用程序链接到仪表板中的sql数据库,但是这对我不起作用。花了很长时间搞乱我的web.config文件中的连接字符串。尝试并上传新文件进行测试。
然后发现连接字符串存储在azure门户仪表板的Web应用程序配置页面中。事实证明,我的密码在连接字符串中仍然有大括号(如默认建议的字符串所示)。我必须在某个时候这样做。删除花括号解决了这个问题。
如果其他人遇到问题,这是另一种选择。
答案 3 :(得分:0)
就我而言,我做的事情是愚蠢的。 。 。我正在使用命令提示符传递连接字符串,我的密码有一个%符号作为它的一部分。使用命令提示符时,%用于表示命令行参数,因此命令解释器只是删除了%符号,我再也无法连接。
修复?逃离%号。
不工作: 密码= PasswordWithPercent%
工作 密码= PasswordWithPercent %%
乌拉!
答案 4 :(得分:0)
我在运行Visual Studio的程序包管理器中的命令时遇到了类似的问题。我必须在连接字符串两边加上单引号,因为密码中带有$符号。用双引号尝试在其中处理变量。