2

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

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

前任。味精: Thread was being aborted.

防爆堆栈:

在 System.Net.UnsafeNclNativeMethods.OSSOCK.recv(IntPtr socketHandle, Byte* pinnedBuffer, Int32 len, SocketFlags socketFlags) 在 System.Net.Sockets.Socket.Receive(Byte[] 缓冲区, Int32 偏移量, Int32 大小, SocketFlags socketFlags, SocketError& errorCode) 在 System.Net.Sockets.NetworkStream.Read(Byte[] 缓冲区,Int32 偏移量,Int32 大小) 在 System.Net.PooledStream.Read(Byte[] 缓冲区,Int32 偏移量,Int32 大小) 在 System.Net.Connection .SyncRead(HttpWebRequest request, Boolean userRetrievedStream, Boolean probeRead) at System.Net.ConnectStream.ProcessWriteCallDone(ConnectionReturnResult returnResult) at System.Net.ConnectStream.CallDone(ConnectionReturnResult returnResult) at System.Net.ConnectStream.ResubmitWrite(ConnectStream oldStream, Boolean suppressWrite ) 在 System.Net.HttpWebRequest。EndWriteHeaders_Part2() 在 System.Net.HttpWebRequest.EndWriteHeaders(Boolean async) 在 System.Net.HttpWebRequest.WriteHeadersCallback(WebExceptionStatus errorStatus, ConnectStream stream, Boolean async) 在 System.Net.ConnectStream.WriteHeaders(Boolean async) 在 System.Net。 HttpWebRequest.EndSubmitRequest() 在 System.Net.HttpWebRequest.GetResponse() 在 System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan 超时) 在 System.ServiceModel.Channels.RequestChannel.Request(消息消息,TimeSpan 超时)在 System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout) at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs,TimeSpan 超时)在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) 在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message) 在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 类型)在 StationService.IStationService.GetCurrentStationTrack(String stationId) 在 StationService.StationServiceClient.GetCurrentStationTrack(String stationId) 在 GetSongJS.getMarq(String radioIdentifier)PrivateInvoke(MessageData& msgData, Int32 类型) 在 StationService.IStationService.GetCurrentStationTrack(String stationId) 在 StationService.StationServiceClient.GetCurrentStationTrack(String stationId) 在 GetSongJS.getMarq(String radioIdentifier)PrivateInvoke(MessageData& msgData, Int32 类型) 在 StationService.IStationService.GetCurrentStationTrack(String stationId) 在 StationService.StationServiceClient.GetCurrentStationTrack(String stationId) 在 GetSongJS.getMarq(String radioIdentifier)

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

4

2 回答 2

7

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

我认为正在发生的是:

  • 用户调用aspx页面
  • aspx 页面调用服务
  • aspx 页面返回给用户
  • 服务客户端未关闭,因此请求已打开且当前请求数很高
  • 最终你有最大数量的请求打开
  • 页面等待一个空闲连接,当它没有得到一个 aspx 页面超时
  • 然后你从超时中得到一个线程中止异常
于 2010-09-28T14:13:50.050 回答
2

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

于 2010-09-28T12:46:37.690 回答