SQL Azure连接一直在尝试打开;大师;尽管连接字符串

SQL Azure连接一直在尝试打开;大师;尽管连接字符串,azure,connection-string,azure-sql-database,Azure,Connection String,Azure Sql Database,我正在尝试通过ASP.NET通用提供程序在Azure上运行默认的“欢迎使用ASP.NET MVC!”MVC3应用程序,使用SQL Azure作为ASP.NET成员存储。我有一个名为“MyDatabase”的SQLAzure数据库,它有一个新的登录名和一个名为“MyUser”的用户。用户被绑定到登录名,并被授予MyDatabase的dbo_所有者角色。MyDatabase被设置为管理门户中web角色的链接资源 该站点在Azure上显示良好,但尝试任何数据库操作时,我的数据库连接失败: 无法打开登录

我正在尝试通过ASP.NET通用提供程序在Azure上运行默认的“欢迎使用ASP.NET MVC!”MVC3应用程序,使用SQL Azure作为ASP.NET成员存储。我有一个名为“MyDatabase”的SQLAzure数据库,它有一个新的登录名和一个名为“MyUser”的用户。用户被绑定到登录名,并被授予MyDatabase的dbo_所有者角色。MyDatabase被设置为管理门户中web角色的链接资源

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

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

搜索答案时,通常的响应是在连接字符串中设置“Database”参数。我确实这样做了,但它仍然在尝试“大师”。它就像被忽略了一样:

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;”放在其他连接参数中,则会失败,并出现相同的错误。我不知道那意味着什么

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

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

。。。位于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处(ConnectionString设置)位于System.Web.Providers.DefaultMembershipProvider.MembershipCreateUser(…)

由于我使用的是一个新数据库,ASP.NET Universal Providers正在尝试创建成员资格/角色表,出于某种原因,实际上需要使用主数据库来完成此操作。我向主数据库添加了一个新用户,与我的登录名相关联,并确保它具有“dbmanager”角色,以便在需要时可以创建表


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

您能检查此用户的属性中设置了什么默认数据库吗?对此进行了调查,但我了解到SQL Azure不支持用户的默认数据库:解决了这个问题,但我在接下来的6小时内没有代表自行回答(新帐户)。在此之前的简短回答是:检查堆栈跟踪,ASP.NET Universal Providers试图在运行时创建成员资格/角色/等表,并且需要使用master数据库。我在master中为同一登录名创建了MyUser,并将其添加到“dbmanager”角色,现在一切正常。