1

經常出現以下錯誤。我想知道有沒有人經歷過這個或者是什麼原因?連接到SQL Azure數據庫時出錯

我使用實體框架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

第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 [email protected]; 
      Password=myPassword; 
      Multipleactiveresultsets=True; 
      Trusted_Connection=False; 
      Encrypt=True; 
      Connection Timeout=30; 
      App=EntityFramework;" /> 

步驟2:看起來你「用戶ID」丟失的服務器名稱。它需要是myUser @ myServer。嘗試添加回來。

步驟3:可能不是關鍵,但你錯過了服務器地址的「,1433」