Azure 网站无法访问 Azure DB

编程入门 行业动态 更新时间:2024-10-16 02:28:04
本文介绍了Azure 网站无法访问 Azure DB的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

这个错误让我发疯,我什至无法重现它!

This error drives me crazy and I can't even reproduce it!

我已将我的网站发布到 Windows Azure 和 SQL Azure,而且效果很好.突然之间它不起作用,我收到了这个令人讨厌的错误:

I've published my website to Windows Azure and SQL Azure and it worked great. All the sudden and it doesn't work, I get this nasty error:

这是我得到的错误:

jsfiddle/shimmy/pcS7g/embedded/result

错误如下:

与 SQL Server 建立连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接.(提供程序:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)

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)

我想强调的是,我可以通过 SSMS 或 VS 访问 SQL 并查看我的表等.

I want to emphasize that I can access the SQL via SSMS or VS and see my tables etc.

我不知道是什么导致了每次部署后一次又一次发生这种烦人的错误.

I have no clue what causes this annoying error that happens again and again after every deployment.

堆栈跟踪:

[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

更新

这是出现在服务器 web.config 上的连接字符串的副本:

Here is a copy of the connection strings as they appear on the server's web.config:

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

我什至试图从服务器的 web.config 中完全删除连接字符串.我不知道这个 App_Data 是从哪里来的!

I even tried to remove the connection strings entirely from the server's web.config. I have no clue where this App_Data thing is coming in from!

我的 DbContext 看起来像这样:

My DbContext looks like this:

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

推荐答案

您的应用程序似乎希望能够在 SQL Server Express 的本地实例上使用项目中的附加文件来设置数据库.错误消息中的关键行是:

It appears that your application is expecting to be able to set up a database using an attached file in your project on a local instance of SQL Server Express. The key line in your error message is:

连接字符串指定本地Sql Server Express实例使用应用程序的 App_Data 目录中的数据库位置.

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

您可能需要更新配置文件中的连接字符串以匹配 Azure 网站中的连接字符串.使用 SQL Server 设置网站后,可以在 Azure 仪表板中获取此信息,并通过同一仪表板进行设置.

You probably need to update the connection string in your configuration file to match the connection string in your Azure website. This information can be obtained in the Azure dashboard once you set up the website with a SQL Server, and be set through the same dashboard.

这里有很好的说明:blog.davidebbo/2012/09/managing-database-connections-in-azure.html

更多推荐

Azure 网站无法访问 Azure DB

本文发布于:2023-11-17 14:28:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1610182.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:无法访问   网站   Azure   DB

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!