连接到SQL Azure数据库时出错

时间:2013-06-04 19:44:54

标签: sql sql-server entity-framework entity-framework-4 azure-sql-database

经常发生以下错误。我想知道是否有人经历过这个或者原因是什么?

我使用Entity Framework 4.0和。 NET 4.0和Visual Studio 2010以及Windows Azure SDK 1.7和2.0。

以下是连接字符串:

<add name="MyEntities" 
    connectionString="metadata=res://*/Model.ModelMy.csdl|res://*/Model.ModelMy.ssdl|res://*/Model.ModelMy.msl;
        provider=System.Data.SqlClient;
        provider connection string=&quot;
        data source=myserver.database.windows.net;
        initial catalog=MyDatabase;
        persist security info=True;
        user id=myUser;
        password=myPassword;
        multipleactiveresultsets=True;
        Trusted_Connection=False;
        Encrypt=True;
        Connection Timeout=30;
        App=EntityFramework&quot;" 
    providerName="System.Data.EntityClient"
 />

错误信息:

Server Error in '/' Application.

Database 'MyDatabase' on server '[NAMEMYSERVER]' is not currently available. Please retry the connection later. If the problem persists, contact customer support, and provide them the session tracing ID of 'efb529ba-14eb-46d0-8311-d48b03435cee'.
Login failed for user 'myUser'.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Database 'MyDatabase' on server '[NAMEMYSERVER]' is not currently available. Please retry the connection later. If the problem persists, contact customer support, and provide them the session tracing ID of 'efb529ba-14eb-46d0-8311-d48b03435cee'.
Login failed for user 'myUser'.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[SqlException (0x80131904): Database 'MyDatabase' on server '[NAMEMYSERVER]' is not currently available. Please retry the connection later. If the problem persists, contact customer support, and provide them the session tracing ID of 'efb529ba-14eb-46d0-8311-d48b03435cee'.
Login failed for user 'myUser'.]
   System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +706
   System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +89
   System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +6425518
   System.Data.SqlClient.SqlConnection.Open() +300
   System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure) +67

[EntityException: The underlying provider failed on Open.]
   System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) +4728195
   System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) +1725
   MyProjectRules.Negocio.MyDatabaseHotel.HotelRN.PesquisarTodos(Include include) +0
   MyProjectWebRole.MyDatabaseHotel.Views.ListaHoteis.CarregarGridViewEntidade() +183
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25
   System.Web.UI.Control.LoadRecursive() +71
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3064

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.551

1 个答案:

答案 0 :(得分:1)

第1步:简化您的连接字符串。我们看起来像这样:

  <add name="[CONTEXTNAME]"
     providerName="System.Data.SqlClient"
     connectionString="
      Server=tcp:[SERVER].database.windows.net,1433;
          Database=[DATABASE];
          User ID=[USER]@[SERVER];
          Password=[PASSWORD];
          Trusted_Connection=False;
          Encrypt=True;
          Connection Timeout=30;"/>

所以看看你的连接字符串,我会尝试类似的东西:

  <add name="MyEntities"
     providerName="System.Data.SqlClient"
     connectionString="
          metadata=res://*/Model.ModelMy.csdl|res://*/Model.ModelMy.ssdl|res://*/Model.ModelMy.msl;
          Server=myserver.database.windows.net;
          Database=MyDatabase;
          User id=myUser@myserver;
          Password=myPassword;
          Multipleactiveresultsets=True;
          Trusted_Connection=False;
          Encrypt=True;
          Connection Timeout=30;
          App=EntityFramework;" />

第2步:看起来您“用户ID”缺少服务器名称。它需要是myUser @ myServer。尝试重新添加。

第3步:可能并不重要,但你错过了服务器地址中的“,1433”