【发布时间】:2012-01-10 18:15:54
【问题描述】:
我知道当然有一个堆栈跟踪来跟踪程序中对方法的调用,但是它不会将对服务中方法的调用显示为跟踪的一部分。 .NET 中是否有任何内置功能可以识别何时调用 WCF 服务并存储被调用方法的名称?
例如我们有下面的方法:
private void DoStuff()
{
object = Service.ServiceMethodCall();
}
在我看到的堆栈跟踪中,我可以恢复 DoStuff() 的名称和其他详细信息,但不能恢复 ServiceMethodCall()。我不想简单地将这个方法的名称硬编码到我的输出中。必须有更好的方法。
谢谢
【问题讨论】:
-
你如何访问这个堆栈跟踪来输出它?
-
我正在使用此代码获取最新的方法调用。 StackTrace stackTrace = new StackTrace(); _callingFunction = stackTrace.GetFrame(0).GetMethod().Name;
-
只有在 ServiceMethod 内部才能看到 ServiceMethodCall。从服务中抛出异常并查看堆栈的样子。另外,请告诉我们您要完成的工作。
-
拦截器(例如 Unity
IInterceptionBehavior)可能是一个选项...
标签: c# .net wcf stack-trace