SQL Azure的间歇性“着称没有这样的主机”问题

问题描述:

我有SQL Azure的和我的网站上托管IIS虚拟机之一Sql Azure和全部VM位于同一资源组中。SQL Azure的间歇性“着称没有这样的主机”问题

我得到没有这样的主机知道间歇性地发布和堆栈跟踪给它作为Sql exception与连接有关。虽然很少在它显示的页面上,但我的日志会被日志所淹没。我的应用程序正在工作,但很奇怪,因为它会间歇性地记录,但很多次。

Exception: System.Data.SqlClient.SqlException 
Message: 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: TCP Provider, error: 0 - No such host is known.) 
Source: .Net SqlClient Data Provider 
    at System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling) 
    at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) 
    at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) 
    at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) 
    at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) 
    at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) 
    at System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) 
    at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) 
    at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) 
    at System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) 
    at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) 
    at System.Data.SqlClient.SqlConnection.Open() 
    at Sitecore.Data.DataProviders.Sql.DataProviderCommand..ctor(IDbCommand command, DataProviderTransaction transaction, Boolean openConnection) 
    at Sitecore.Data.DataProviders.Sql.SqlDataApi.<>c__DisplayClass4.<CreateCommand>b__3() 
    at Sitecore.Data.DataProviders.Retryer.Execute[T](Func`1 action, Action recover) 

Nested Exception 

Exception: System.ComponentModel.Win32Exception 
Message: No such host is known 

这可能有帮助。 https://docs.microsoft.com/en-us/azure/sql-database/sql-database-troubleshoot-common-connection-issues#troubleshoot-transient-errors

最近一直在使用sql azure,并且已经看到这些间歇性连接问题很多。我们通常编码在连接失败的情况下再次重试连接3次,而不是在第一次尝试中抛出异常,并且似乎工作正常。

+0

我已经配置了重试,与Azure支持联系,他们建议将连接超时时间增加到45,但没有运气。问题是我的日志一天捕获1000次左右。测试防火墙设置并允许远程连接。 –

+0

你可以复制粘贴日志吗? –

+0

添加从日志远程连接的堆栈跟踪已启用,并且我能够从管理工作室连接没有任何问题。 –