shi*_*mar 17 c# wcf thread-abort threadabortexception
我有一个托管在IIS 6.0上的WCF服务(内置于.NET framework 3.5).
代码流程如下
我正在加载测试我的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"
maxConcurrentInstances ="2400"
maxConcurrentSessions ="400"/>
</behavior>
Run Code Online (Sandbox Code Playgroud)
在web.config中
<system.web>
<compilation debug="false" />
<httpRuntime executionTimeout="1800"/>
</system.web>
Run Code Online (Sandbox Code Playgroud)
在web.config中
<system.net>
<connectionManagement>
<add address = "*" maxconnection = "100" />
</connectionManagement>
</system.net>
Run Code Online (Sandbox Code Playgroud)
在web.config中
ServicePointManager.DefaultConnectionLimit = 100; (Change in code)
Run Code Online (Sandbox Code Playgroud)
我已经按照StackOverflow上的许多人的建议将App池的IdleTimeout属性设置为0.
无论在哪里使用溪流,我都会处理所有地方.所以所有的流都关闭了.
任何人都可以告诉我谁在中止线程以及为什么有任何手段或工具来跟踪线程中止启动的原因?
| 归档时间: |
|
| 查看次数: |
1592 次 |
| 最近记录: |