3

当我的 Azure 辅助角色尝试使用 LINQ-to-SQL 连接到 Azure SQL 数据库以调用 ExecuteCommand 时,我间歇性地收到以下 SQL 异常:

“您尝试连接的 SQL Server 实例需要加密,但本机不支持。”

Google 似乎对此错误消息一无所知。堆栈跟踪显示它在登录前握手期间失败:

System.Data.SqlClient.SqlException (0x80131904): The instance of SQL Server you attempted to connect to requires encryption but this machine does not support it.
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
at System.Data.SqlClient.TdsParser.ConsumePreLoginHandshake(Boolean encrypt, Boolean trustServerCert, Boolean& marsCapable)
at System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, Boolean withFailover)
at System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, SqlConnection owningObject, Boolean withFailover)
at System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, TimeoutTimer timeout)
at System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, TimeoutTimer timeout, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
at System.Data.SqlClient.SqlConnection.Open()
at System.Data.Linq.SqlClient.SqlConnectionManager.UseConnection(IConnectionUser user)
at System.Data.Linq.SqlClient.SqlProvider.get_IsSqlCe()
at System.Data.Linq.SqlClient.SqlProvider.InitializeProviderMode()
at System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)
at System.Data.Linq.DataContext.ExecuteCommand(String command, Object[] parameters)

我发现了其他类似错误的报告,这些错误是由于登录前握手中的各种问题引起的(其中对于握手中的任何问题,它只是退回到类似的错误消息),以及 SQL Server“强制加密”的其他错误" 需要更改设置,但由于这是一个 Azure SQL 数据库,我无法进入并在 SQL Server 中更改此设置,而且我真的不需要这样做。

由于我在此特定错误上找不到任何其他内容,而且并非每次都发生,因此我不确定在哪里寻找。关于从这里看哪里的任何指示?

编辑:除非另有说明,否则我将这一错误归结为由于来自我的另一个托管服务的数据库服务器上的大量流量而导致的瞬时错误。我问的后续问题中的详细信息:同一服务器上的两个 Azure SQL 数据库能否影响彼此的性能?

4

1 回答 1

0

我今天早上遇到了这个问题,我可以从我的机器连接到我的 sql azure 实例,可以通过 sql azure 管理门户登录,但不能通过我的 azure 网站登录。

最后的解决方案是进入 azure 网站的仪表板并将数据库添加为链接资源。

不是很明显,也许是巧合,但目前它有效。

于 2013-09-06T08:24:14.493 回答