查找导致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)
谢谢
Visual Studio 2010可以在调试时捕获异常。您可以捕获任何一组异常,也可以捕获全部异常。还可以在执行抛出异常的操作之前启用捕获。
假设你使用的是visual studio 2010:
- 在顶部菜单栏中单击"调试",然后单击"例外"。
- 点击打开
Common language runtime exceptions
部分 - 向下滚动,直到你找到
System.ServiceModel
,点击这个打开。 - 在对应的异常 的复选框中添加一个勾号
我还建议,如果可能的话,在可能导致此错误的方法中添加某种日志记录。这样,就更容易定位问题的位置。