8

Cette erreur me rend fou et je ne peux même pas le reproduire!Azure site ne peut pas accéder à Azure DB

J'ai publié mon site Web sur Windows Azure et SQL Azure et cela a très bien fonctionné. tout à coup, et ça ne marche pas, je reçois cette erreur méchante:

Voici l'erreur que je reçois:

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

est ici l'erreur:

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)

Je veux pour souligner que je peux accéder au SQL via SSMS ou VS et voir mes tables etc.

Je n'ai aucune idée de ce qui cause cette erreur ennuyeuse Cela arrive encore et encore après chaque déploiement.

Trace de la pile:

[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 

Mise à jour

Voici une copie des chaînes de connexion telles qu'elles apparaissent sur le web.config du serveur:

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

J'ai même essayé de supprimez les chaînes de connexion entièrement du web.config du serveur. Je n'ai aucune idée d'où vient cette chose App_Data!

Mon DbContext ressemble à ceci:

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

C'est étrange. Pourriez-vous rdp les instances et vérifier web.config pour vous assurer que vous utilisez les chaînes de connexion correctes? – Win

+0

Je suis assez nouveau à ce sujet, comment pouvez-vous rdp un serveur Azure? – Shimmy

+0

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

Répondre

6

Il semble que votre application attend de pouvoir mettre en place une base de données en utilisant un fichier joint dans votre projet sur une instance locale de SQL Server Express. La ligne clé dans votre message d'erreur est:

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

Vous devez probablement mettre à jour la chaîne de connexion dans votre fichier de configuration pour correspondre à la chaîne de connexion dans votre site Web Azure. Ces informations peuvent être obtenues dans le tableau de bord Azure une fois que vous avez configuré le site Web avec un serveur SQL et que vous les définissez via le même tableau de bord.

est ici de bonnes instructions pour le faire: http://blog.davidebbo.com/2012/09/managing-database-connections-in-azure.html

+0

Vérifiez votre web.config.cloud et assurez-vous que vous avez la bonne chaîne de connexion ou de transformer spécifié –

+0

J'ai vérifié la chaîne de connexion sur le web.configuration du serveur, et aucune connexion avec App_Data a été mentionné là ... – Shimmy

8

Je sais que c'est un poste vraiment vieux, mais je luttais avec le même problème ...

J'ai eu le même problème et, bien que je ne » Je l'ai compris, j'ai trouvé que si je suis actuellement connecté (sur mon site, pas Azure console), je dois me déconnecter puis me reconnecter et cette erreur de base de données disparaît. Cela n'a aucun sens pour moi, mais c'est ce qui fonctionne pour moi après mon déploiement. J'ai eu plusieurs fois où j'ai déployé et tout fonctionne très bien (pas besoin de se déconnecter/se connecter). Parfois, il saute dans ce mode. Je ne sais pas ce qui se passe là-bas.

Cela n'a rien à voir avec les chaînes de connexion de votre fichier web.config - elles sont toutes correctement transformées.

+0

merci @CPank, fixé en redémarrant le navigateur, comme vous l'avez décrit – hawbsl

+1

Vous êtes l'homme! Je tirais mes cheveux, puis après avoir lu votre message j'ai tout simplement effacé mes cookies et le problème est parti! Je vous bénis, monsieur. – N1njaB0b