【问题标题】:SQL Azure connection keeps trying to open "master" despite connection string尽管有连接字符串,SQL Azure 连接仍试图打开“master”
【发布时间】:2012-06-19 20:29:12
【问题描述】:

我正在尝试运行默认的“欢迎使用 ASP.NET MVC!” Azure 上的 MVC3 应用程序,通过 ASP.NET 通用提供程序将 SQL Azure 用于 ASP.NET 成员存储。我有一个名为“MyDatabase”的 SQL Azure 数据库,其中有一个新的登录名和用户,都称为“MyUser”。用户与登录绑定,并被赋予了 MyDatabase 的 dbo_owner 角色。 MyDatabase 被设置为管理门户中 Web 角色的链接资源。

该站点在 Azure 上显示正常,但尝试任何数据库操作时,我的数据库连接失败:

无法打开登录请求的数据库“master”。登录失败。用户“MyUser”登录失败。

搜索答案,通常的反应是在连接字符串中设置“数据库”参数。我确实做到了这一点,但它仍然在不断尝试“大师”。好像被忽略了:

Server=tcp:myserver.database.windows.net,1433;Database=MyDatabase;User ID=MyUser@myserver;Password=mypassword;Trusted_Connection=False;Encrypt=True;Connection Timeout=30;MultipleActiveResultSets=True

我已经排除的其他事情:

  • 我 RDP 加入我的 Web 角色并确认此连接字符串显示在我的 Web.config 中。
  • 我尝试了“初始目录”而不是“数据库”,但结果相同。
  • 可能很重要:当我将“连接到数据库:”设置为“MyDatabase”时,SSMS 会连接到我的数据库,但如果我将其保留为默认设置并设置“Database=MyDatabase;”,则会失败并出现相同的错误在附加连接参数中。我不确定这意味着什么?

这里可能是一些新手错误 - 我还应该检查什么?

【问题讨论】:

  • 你能检查一下这个用户属性中设置的默认数据库吗?
  • 调查了一下,但我了解到 SQL Azure 不支持用户的默认数据库:stackoverflow.com/questions/8859067/…
  • 解决了这个问题,但我在另外 6 小时内没有代表自行回答(新帐户)。在那之前的简短回答:检查堆栈跟踪,并且 ASP.NET 通用提供程序正在尝试创建成员资格/角色/等。运行时的表,并且需要使用主数据库。我在 master 中为同一登录创建了一个 MyUser,并将其添加到“dbmanager”角色中,现在一切正常。

标签: azure connection-string azure-sql-database


【解决方案1】:

查看异常的堆栈跟踪有助于解决这个问题:

... 在 System.Data.SqlClient.SqlProviderServices.UsingMasterConnection(...) 在 System.Data.SqlClient.SqlProviderServices.DbDatabaseExists(...) 在 System.Data.Objects.ObjectContext.DatabaseExists() 在 System .Web.Providers.Entities.DatabaseCreationHelper.DatabaseExists(...) 在 System.Web.Providers.ModelHelper.CreateMembershipEntities(ConnectionStringSettings 设置) 在 System.Web.Providers.DefaultMembershipProvider.Membership_CreateUser(...) ...

由于我使用的是新数据库,ASP.NET 通用提供程序正在尝试创建成员/角色表,并且出于某种原因实际上确实需要使用主数据库来完成此操作。我向 master 添加了一个新用户,绑定到我的登录名,并确保它具有“dbmanager”角色,以便它可以在需要时创建表。

我不是 100% 确定它为什么需要通过 master,但是堆栈跟踪使它看起来这样做是为了检查您提供给它的数据库是否确实存在。 (如果您知道确切的答案,请继续评论!)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-01
    相关资源
    最近更新 更多