8

Questo errore mi fa impazzire e non riesco nemmeno a riprodurlo!Il sito Web di Azure non può accedere a Azure DB

Ho pubblicato il mio sito Web su Windows Azure e SQL Azure e ha funzionato benissimo. Tutto l'improvviso e non funziona, ottengo questo brutto errore:

Ecco l'errore che ottengo:

http://jsfiddle.net/shimmy/pcS7g/embedded/result

Ecco l'errore:

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

voglio per sottolineare che posso accedere a SQL tramite SSMS o VS e vedere le mie tabelle ecc.

Non ho idea di cosa causa questo fastidioso errore succede ancora e ancora dopo ogni dispiegamento.

traccia stack:

[SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)] 
    System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +5295167 
    System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +242 
    System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover) +5307115 
    System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) +145 
    System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) +920 
    System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) +307 
    System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions) +434 
    System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +5309659 
    System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions) +38 
    System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +5311874 
    System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +143 
    System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +83 
    System.Data.SqlClient.SqlConnection.Open() +96 
    System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString) +76 

[HttpException (0x80004005): Unable to connect to SQL Server database.] 
    System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString) +131 
    System.Web.Management.SqlServices.SetupApplicationServices(String server, String user, String password, Boolean trusted, String connectionString, String database, String dbFileName, SqlFeatures features, Boolean install) +89 
    System.Web.Management.SqlServices.Install(String database, String dbFileName, String connectionString) +27 
    System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(String fullFileName, String dataDir, String connectionString) +386 

Aggiornamento

Ecco una copia delle stringhe di connessione come appaiono sul web.config del server:

<connectionStrings> 
    <add name="Context" connectionString="Data Source=tcp:abcdefg.database.windows.net,1433;Initial Catalog=Database;User [email protected]:abcdefg;Password=my123password;" providerName="System.Data.SqlClient" /> 
    <add name="Storage" connectionString="DefaultEndpointsProtocol=https;AccountName=accountname;AccountKey=accountkey==" /> 
</connectionStrings> 

Ho anche cercato di rimuovere completamente le stringhe di connessione dal web.config del server. Non ho idea di dove arrivi questa cosa App_Data!

mio DbContext assomiglia a questo:

public Context() 
    : base("name=Context") //I also tried "Context" alone 
{ 
} 
+0

È strano. Potresti eseguire l'rdp delle istanze e controllare in web.config per assicurarti di utilizzare stringhe di connessione corrette? – Win

+0

Sono abbastanza nuovo in questo, come puoi rdp un server Azure? – Shimmy

+0

http://www.windowsazure.com/en-us/develop/net/common-tasks/remote-desktop/ – Win

risposta

6

Sembra che l'applicazione si aspetta di essere in grado di creare un database utilizzando un file allegato nel progetto in un'istanza locale di SQL Server Express. La linea di chiave nel messaggio di errore è:

The connection string specifies a local Sql Server Express instance using a database location within the application's App_Data directory.

probabilmente è necessario aggiornare la stringa di connessione nel file di configurazione in modo che corrisponda la stringa di connessione nel tuo sito web Azure. Queste informazioni possono essere ottenute nella dashboard di Azure dopo aver configurato il sito Web con un server SQL e impostate nella stessa dashboard.

Ecco buone istruzioni per farlo: http://blog.davidebbo.com/2012/09/managing-database-connections-in-azure.html

+0

Controlla il tuo web.config.cloud e assicurati di avere la giusta stringa di connessione o trasformazione specificata in questo numero –

+0

Ho controllato la stringa di connessione sul web.configuration del server, e nessuna connessione con App_Data è stata menzionata lì ... – Shimmy

8

So che questo è un post molto vecchio, ma ho appena combattuto con lo stesso problema ...

ho avuto lo stesso problema e, anche se I don' Lo capisco, ho scoperto che se sono attualmente connesso (sul mio sito, non sulla console di Azure), ho bisogno di disconnettermi e poi di nuovo di nuovo e questo errore del database va via. Non ha senso per me, ma è ciò che funziona per me dopo la distribuzione. Ho avuto molte volte dove ho dispiegato e tutto funziona alla grande (non c'è bisogno di uscire/accedere). A volte salta in questa modalità. Non sono sicuro di cosa sta succedendo lì.

Non ha nulla a che fare con le stringhe di connessione nel web.config - vengono tutte trasformate correttamente.

+0

grazie a @CPank, risolto riavviando il browser, proprio come hai descritto – hawbsl

+1

Tu sei l'uomo! Mi stavo strappando i capelli, poi dopo aver letto il tuo post ho semplicemente cancellato i miei biscotti e il problema è andato via! Dio ti benedica. – N1njaB0b

Problemi correlati