小编Cli*_*lif的帖子

进行客户端 WCF 调用时如何防止“System.AccessViolationException”?

我正在运行一个 Windows 服务,该服务正在对其他地方运行的多个其他 WCF 服务进行多次调用。有时,我们的客户在调用端点时会遇到无法捕获的异常,从而导致我们的服务瘫痪。端点的服务器端正在运行一个实例,除了它进行的数据库调用之外,该实例是完全无状态的。

例外是“System.AccessViolationException”,我知道它属于损坏状态异常的类别,正如我在此处阅读的那样。

我知道 [HandleProcessCorruptedStateExceptions] 属性,以及所有反对使用它来处理不由异常捕获器维护的代码的警告。

调用堆栈的顶部深入研究了 WCF 包装的本机 Windows 库:

    System.AccessViolationException Stack: 
  at System.Net.UnsafeNclNativeMethods+OSSOCK.recv(IntPtr, Byte*, Int32, System.Net.Sockets.SocketFlags) 
  at System.Net.Sockets.Socket.Receive(Byte[], Int32, Int32, System.Net.Sockets.SocketFlags, System.Net.Sockets.SocketError ByRef) 
  at System.Net.Sockets.Socket.Receive(Byte[], Int32, Int32, System.Net.Sockets.SocketFlags) 
  at System.Net.Sockets.NetworkStream.Read(Byte[], Int32, Int32) 
  at System.Net.PooledStream.Read(Byte[], Int32, Int32) 
  at System.Net.Connection.SyncRead(System.Net.HttpWebRequest, Boolean, Boolean) 
  at System.Net.Connection.PollAndRead(System.Net.HttpWebRequest, Boolean) 
  at System.Net.ConnectStream.WriteHeaders(Boolean) 
  at System.Net.HttpWebRequest.EndSubmitRequest() 
  at System.Net.HttpWebRequest.SetRequestSubmitDone(System.Net.ConnectStream) 
  at System.Net.Connection.CompleteStartRequest(Boolean, System.Net.HttpWebRequest, System.Net.TriState) 
  at System.Net.Connection.SubmitRequest(System.Net.HttpWebRequest, Boolean) 
  at System.Net.ServicePoint.SubmitRequest(System.Net.HttpWebRequest, System.String) 
  at System.Net.HttpWebRequest.SubmitRequest(System.Net.ServicePoint) 
  at System.Net.HttpWebRequest.GetRequestStream(System.Net.TransportContext ByRef) 
  at System.Net.HttpWebRequest.GetRequestStream() 
  at System.ServiceModel.Channels.HttpOutput+WebRequestHttpOutput.GetOutputStream() 
  at System.ServiceModel.Channels.HttpOutput.Send(System.TimeSpan) 
  at System.ServiceModel.Channels.HttpChannelFactory`1+HttpRequestChannel+HttpChannelRequest[[System.__Canon, mscorlib, …
Run Code Online (Sandbox Code Playgroud)

.net c# wcf

5
推荐指数
0
解决办法
762
查看次数

标签 统计

.net ×1

c# ×1

wcf ×1