sof*_*ntp 4 .net c# linq sql-server
经过几年的开发,我的 C#/.Net 程序在尝试连接到 MS Sql 服务器数据库时遇到了这个问题。我不知道如何修复它。它仅在尝试在特定表上写入时发生。清理完那张桌子后,我注意到这个问题的频率降低了,但它仍然不时发生;
这是我得到的两个例外:
System.Data.SqlClient.SqlException (0x80131904):与服务器成功建立连接,但在登录前握手过程中发生错误。(提供者:SSL 提供者,错误:0 - 等待操作超时。)---> System.ComponentModel.Win32Exception (0x80004005):等待操作超时在 System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) ...在 System.Data.Linq.DataQuery
1.System.Linq.IQueryProvider.Execute[S](Expression >expression) at System.Linq.Queryable.SingleOrDefault[TSource](IQueryable1 源)
2.
System.Data.SqlClient.SqlException (0x80131904):连接超时已过期。尝试使用登录前握手确认时超时时间已过。这可能是因为登录前握手失败或服务器无法及时响应。尝试连接到此服务器所花费的时间为 - [Pre-Login] 初始化 = 42511;握手=6001;---> System.ComponentModel.Win32Exception (0x80004005): System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnection ...Internal&
小智 5
由于安装了windows update KB2992611,这是SChannel的关键更新,这两天我也遇到了同样的错误。我还没有确定这会中断登录前握手的原因,但暂时卸载此更新恢复了连接到 SQL Server 的能力。