我正在尝试找到Web方法的名称(Web应用程序有数百个),这些方法负责抛出间歇性的System.ServiceModel.CommunicationException
例外。
我有一个可以捕获异常的错误处理程序(IErrorHandler
),但是异常信息并没有指向异常的来源。
有没有办法确定哪个Web方法负责该异常?
唯一的堆栈跟踪信息如下:
System.ServiceModel.CommunicationException:从管道读取错误:无法识别的错误109(0x6d)。 ---> System.IO.PipeException:从管道读取错误:无法识别的错误109(0x6d)。
at System.ServiceModel.Channels.PipeConnection.OnAsyncReadComplete(Boolean hasResult,Int32 error,Int32 numBytes)
---内部异常堆栈跟踪结束---
在System.Runtime.AsyncResult.End [TAsyncResult](IAsyncResult结果)
at System.ServiceModel.Channels.TransportDuplexSessionChannel.TryReceiveAsyncResult.End(IAsyncResult result,Message& message)
在System.ServiceModel.Dispatcher.DuplexChannelBinder.EndTryReceive(IAsyncResult result,RequestContext& requestContext)
在System.ServiceModel.Dispatcher.ErrorHandlingReceiver.EndTryReceive(IAsyncResult result,RequestContext& requestContext)
谢谢
答案 0 :(得分:0)
Visual Studio 2010可以在调试时捕获异常。您可以捕获任何一组例外或全部。也可以在执行抛出异常的操作之前启用捕获。
假设您使用的是visual studio 2010:
Common language runtime exceptions
部分。System.ServiceModel
,同时点击此处。如果可能的话,我还建议在可能导致此错误的方法中添加某种日志记录。这样,就可以更容易地确定问题的位置。