查找导致WCF通信异常的Web方法

本文关键字:Web 方法 异常 通信 WCF 查找 | 更新日期: 2023-09-27 18:08:41

我试图找到web方法的名称(web应用程序有数百个),负责抛出间歇性System.ServiceModel.CommunicationException异常。

我有一个可以捕获异常的错误处理程序(IErrorHandler),但是异常信息并没有指向异常的来源。

是否有办法确定哪个web方法负责异常?

唯一的堆栈跟踪信息如下:

System.ServiceModel。通信异常:从管道读取错误:Unrecognized error 109 (0x6d)。--> System.IO.PipeException:从管道读取错误:Unrecognized error 109 (0x6d).
在System.ServiceModel.Channels.PipeConnection。OnAsyncReadComplete(Boolean haveResult, Int32错误,Int32 numBytes)
——内部异常堆栈跟踪结束——
在System.Runtime.AsyncResult。结束[TAsyncResult] (IAsyncResult结果)
在System.ServiceModel.Channels.TransportDuplexSessionChannel.TryReceiveAsyncResult。End(IAsyncResult result, Message&消息)
在System.ServiceModel.Dispatcher.DuplexChannelBinder。EndTryReceive(IAsyncResult result);requestContext)
在System.ServiceModel.Dispatcher.ErrorHandlingReceiver。EndTryReceive(IAsyncResult result);requestContext)

谢谢

查找导致WCF通信异常的Web方法

Visual Studio 2010可以在调试时捕获异常。您可以捕获任何一组异常,也可以捕获全部异常。还可以在执行抛出异常的操作之前启用捕获。

假设你使用的是visual studio 2010:

  1. 在顶部菜单栏中单击"调试",然后单击"例外"。
  2. 点击打开Common language runtime exceptions部分
  3. 向下滚动,直到你找到System.ServiceModel,点击这个打开。
  4. 在对应的异常
  5. 的复选框中添加一个勾号

我还建议,如果可能的话,在可能导致此错误的方法中添加某种日志记录。这样,就更容易定位问题的位置。