1

它类似于这个问题,但它没有修复:TCP Provider: The semaphore timeout period has expired

我正在使用带有重试策略的企业库瞬态故障处理(v 6.x)。我已经使用了多年,这个错误是一个新错误。可能是由于我们的网络服务器上的 Windows 更新(win 2012r2)

因此,由于没有更改 C# 代码,而且我使用企业库已经很长时间了……它必须与 Windows/硬件相关吗?

我发现了这个,说它与winsock相关,还有一些关于usb驱动程序的来源?

vip swaps存在一个已知问题,但是我们在 prem 2012r2 上运行我们自己的 webapps(webforms 和 mvc 应用程序都有这个问题)

这是堆栈跟踪之一:

System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync()
System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket()
System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer()
System.Data.SqlClient.TdsParserStateObject.TryReadByte(Byte& value)
System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
System.Data.SqlClient.SqlDataReader.get_MetaData()
System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption)
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
Shop.Dal.DB.<>c__DisplayClass2_0.<GetDatatable>b__0()
Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.<>c__DisplayClass1.<ExecuteAction>b__0()
Microsoft.Practices.EnterpriseLibrary.TransientFaultHandling.RetryPolicy.ExecuteAction[TResult](Func`1 func)
Shop.Dal.DB.GetDatatable(SqlCommand com) The semaphore timeout period has expired
4

0 回答 0