8

Ten błąd doprowadza mnie do szaleństwa i nie mogę go odtworzyć!Witryna Azure nie może uzyskać dostępu do usługi Azure DB

Opublikowałem swoją witrynę internetową na platformę Windows Azure i SQL Azure i działało świetnie. Wszystko nagle i to nie działa, otrzymuję ten paskudny błąd:

Tutaj jest błąd pojawia się:

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

tu jest błąd:

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)

chcę podkreślić, że mogę uzyskać dostęp do SQL przez SSMS lub VS i zobaczyć moje tabele itp.

Nie mam pojęcia, co powoduje ten denerwujący błąd th dzieje się raz za razem po każdym wdrożeniu.

Ślad stosu:

[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 

Aktualizacja

Oto kopia ciągi połączeń, które pojawiają się na web.config serwera:

<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> 

Próbowałem nawet usuń łańcuchy połączeń całkowicie z pliku web.config serwera. Nie mam zielonego pojęcia, skąd się bierze ta App_Data!

My DbContext wygląda następująco:

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

To jest dziwne. Czy możesz przetworzyć instancje i sprawdzić web.config, aby upewnić się, że używasz poprawnych ciągów połączenia? – Win

+0

Jestem całkiem nowy, jak można uruchomić serwer Azure? – Shimmy

+0

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

Odpowiedz

6

Wydaje się, że aplikacja spodziewa się, aby móc utworzyć bazę danych przy użyciu załączonego pliku w projekcie w lokalnej instancji SQL Server Express. Kluczowa linia w komunikacie o błędzie to:

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

Prawdopodobnie trzeba zaktualizować ciąg połączenia w pliku konfiguracyjnym, aby dopasować ciąg połączenia w witrynie Azure. Informacje te można uzyskać na pulpicie nawigacyjnym platformy Azure po skonfigurowaniu witryny za pomocą serwera SQL Server i można ustawić za pomocą tego samego panelu.

Oto dobre instrukcje do tej operacji: http://blog.davidebbo.com/2012/09/managing-database-connections-in-azure.html

+0

Sprawdź swój plik web.config.cloud i upewnij się, że masz odpowiedni ciąg połączenia lub transformację określoną w tym dokumencie: –

+0

Sprawdziłem ciąg połączenia w web.configuration serwera i nie wspomniałem o żadnym połączeniu z App_Data ... – Shimmy

8

wiem, że to jest naprawdę stary post, ale ja po prostu walczyła z tym samym numerze ...

miałem ten sam problem i chociaż I don” Zrozumiałem to, stwierdziłem, że jeśli jestem aktualnie zalogowany (na mojej stronie, nie konsoli Azure), muszę się wylogować, a następnie wrócić ponownie i ten błąd bazy danych znika. Dla mnie to nie ma sensu, ale to jest to, co działa dla mnie po wdrożeniu. Wiele razy zdarzyło mi się, że wdrożyłem i wszystko działa świetnie (nie ma konieczności wylogowywania/logowania). Czasami wskakuje do tego trybu. Nie jestem pewien, co się tam dzieje.

Nie ma nic wspólnego z ciągami połączeń w pliku web.config - wszystkie są poprawnie przekształcane.

+0

dzięki @CPank, naprawione przez ponowne uruchomienie przeglądarki, tak jak opisałeś – hawbsl

+1

Jesteś mężczyzną! Wyciągałam włosy, a po przeczytaniu twojego postu po prostu wyczyściłam ciasteczka i problem zniknął! Pobłogosław, proszę pana. – N1njaB0b

Powiązane problemy