2 cshmicky cshmicky 于 2017.01.11 03:51 提问

在并发量大的时候,阿里云ECS会抛出异常provider

大家好!
最近阿里云ECS出现了一些奇怪的问题,在并发量大的时候,ASP.NET会抛出下面的异常:
System.Data.SqlClient.SqlException: 已成功与服务器建立连接,但是在登录前的握手期间发生错误。 (provider: SSL Provider, error: 0 - 等待的操作过时。) ---> System.ComponentModel.Win32Exception: 等待的操作过时。
--- 内部异常堆栈跟踪的结尾 ---
在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection)
在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection)
在 System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource
1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
在 System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource1 retry, DbConnectionOptions userOptions)
在 System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource
1 retry)
在 System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
在 System.Data.SqlClient.SqlConnection.Open()
在 Microsoft.Practices.EnterpriseLibrary.Data.Database.OpenConnection()
在 Microsoft.Practices.EnterpriseLibrary.Data.Database.ExecuteNonQuery(DbCommand command)
这类异常一般会在1分钟以内自动恢复。
一开始怀疑是阿里云RDS的问题,但是监控到RDS的连接数,IOPS以及CPU都是正常的,而且其他负载量低的ECS连接RDS也是没有问题的。
参考网上的一些回复检查了 netsh WinSock Show Catalog,没有发现异常。
现在怀疑是不是ECS的原因或者ASP.NET方面的问题。
Ray Wu的主页

1个回答

oyljerry
oyljerry   Ds   Rxr 2017.01.11 23:08

因为异常只有超时信息,可以联系阿里云技术支持,让他们从rds那边查看具体超时原因。这样可以跟你自己程序结合分析

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!