小编shi*_*mar的帖子

线程在wcf服务中中止了异常

我有一个托管在IIS 6.0上的WCF服务(内置于.NET framework 3.5).

代码流程如下

  1. 客户端(这是另一个Web服务)调用WCF服务
  2. WCF服务调用一个线程在后台进行处理并立即响应被调用者.
  3. 完成所有处理后的后台线程,回调线程.此调用基本上是HTTPs请求,因为客户端是Web服务.

我正在加载测试我的WCF服务以定义阈值.观察结果如下:

在1分钟内对WCF服务进行的大约3次迭代的1024次请求成功通过.完成每次迭代所需的时间约为25-30分钟.但是从第4次迭代可以看到批量故障.大约50%的请求因以下异常而失败.

异常 - 线程正在中止.

堆栈跟踪

21_10_2016_09_30_52,9:30:52 AM,Information,Thread name- apSwTTbLTETfwT3y Stack trace in ProcessTestConversion method -    at System.Threading.WaitHandle.WaitOneNative(SafeHandle waitableSafeHandle, UInt32 millisecondsTimeout, Boolean hasThreadAffinity, Boolean exitContext)
   at System.Threading.WaitHandle.InternalWaitOne(SafeHandle waitableSafeHandle, Int64 millisecondsTimeout, Boolean hasThreadAffinity, Boolean exitContext)
   at System.Threading.WaitHandle.WaitOne(Int32 millisecondsTimeout, Boolean exitContext)
   at System.Net.LazyAsyncResult.WaitForCompletion(Boolean snap)
   at System.Net.Connection.SubmitRequest(HttpWebRequest request, Boolean forcedsubmit)
   at System.Net.ServicePoint.SubmitRequest(HttpWebRequest request, String connName)
   at System.Net.HttpWebRequest.SubmitRequest(ServicePoint servicePoint)
   at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context)
   at System.Net.HttpWebRequest.GetRequestStream()
   .
   .(My function calls stack trace)
   .
   .
Run Code Online (Sandbox Code Playgroud)

我试图解决这些问题的变化如下:

   <behavior>
    <serviceThrottling maxConcurrentCalls="2000" …
Run Code Online (Sandbox Code Playgroud)

c# wcf thread-abort threadabortexception

17
推荐指数
1
解决办法
1592
查看次数

标签 统计

c# ×1

thread-abort ×1

threadabortexception ×1

wcf ×1