WCF服务调用中的“线程正在中止”

时间:2010-09-28 12:42:35

标签: c# asp.net ajax wcf prtg

在我的程序中有一个包含wcf客户端的aspx页面,所以在同一服务器上调用wcf服务。

当我的wcf客户端调用生产服务器上的IIS中托管的wcf服务时,我得到此异常。

实施例。消息:Thread was being aborted.

Ex stack:

  

在System.Net.UnsafeNclNativeMethods.OSSOCK.recv(IntPtr socketHandle,   Byte * pinnedBuffer,Int32 len,SocketFlags socketFlags)at   System.Net.Sockets.Socket.Receive(Byte []缓冲区,Int32偏移量,Int32   size,SocketFlags socketFlags,SocketError& errorCode)at   System.Net.Sockets.NetworkStream.Read(Byte []缓冲区,Int32偏移量,   在System.Net.PooledStream.Read(Byte []缓冲区,Int32中的Int32大小)   System.Net.Connection.SyncRead(HttpWebRequest。的偏移量,Int32大小)   request,Boolean userRetrievedStream,Boolean probeRead)at   System.Net.ConnectStream.ProcessWriteCallDone(ConnectionReturnResult   returnResult)at   System.Net.ConnectStream.CallDone(ConnectionReturnResult returnResult)   在System.Net.ConnectStream.ResubmitWrite(ConnectStream oldStream,   布尔值suppressWrite)at   System.Net.HttpWebRequest.EndWriteHeaders_Part2()at   System.Net.HttpWebRequest.EndWriteHeaders(布尔异步)at   System.Net.HttpWebRequest.WriteHeadersCallback(WebExceptionStatus   errorStatus,ConnectStream流,布尔异步)at   System.Net.ConnectStream.WriteHeaders(布尔异步)at   System.Net.HttpWebRequest.EndSubmitRequest()at   System.Net.HttpWebRequest.GetResponse()at   System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(时间跨度   超时)at   System.ServiceModel.Channels.RequestChannel.Request(消息消息,   TimeSpan超时)at   System.ServiceModel.Dispatcher.RequestChannelBinder.Request(消息   消息,TimeSpan超时)at   System.ServiceModel.Channels.ServiceChannel.Call(String action,   Boolean oneway,ProxyOperationRuntime操作,Object [] ins,   对象[]出局,TimeSpan超时)at   System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage   methodCall,ProxyOperationRuntime operation)at   System.ServiceModel.Channels.ServiceChannelProxy.Invoke(即时聊天   消息)   System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&安培;   msgData,Int32类型)at   StationService.IStationService.GetCurrentStationTrack(字符串   stationId)at   StationService.StationServiceClient.GetCurrentStationTrack(字符串   stationId)在GetSongJS.getMarq(String radioIdentifier)

我使用PRTG Ipmonitor,它在“请求当前”传感器上给了我太多的请求。 我的网站在浏览器中变得可用。 如果删除这个调用service all的页面就可以了。

2 个答案:

答案 0 :(得分:6)

听起来你没有关闭WCF客户端。

我认为发生的事情是:

  • 用户调用aspx页面
  • aspx页面调用服务
  • aspx页面返回给用户
  • 服务客户端未关闭,因此请求已打开且当前请求数量很高
  • 最终您的最大请求数量已打开
  • 页面等待免费连接,当它没有得到一个aspx页面超时
  • 然后从超时
  • 获得线程中止异常

答案 1 :(得分:2)

客户端代理拨打电话后是否有Response.Redirect(url)来电?单个参数重载将终止当前线程,这导致许多这些类型的错误出现在日志中。有时页面已经完成工作而且没有发生,但是切换到另一个更繁忙的环境通常是一个触发器。

相关问题