gpt4 book ai didi

c# - 是否有一个 C# 类用于跟踪服务方法调用,如堆栈跟踪

转载 作者:太空宇宙 更新时间:2023-11-03 11:29:24 24 4
gpt4 key购买 nike

我知道当然有一个堆栈跟踪用于跟踪程序中对方法的调用,但是它不会将对服务中方法的调用显示为跟踪的一部分。 .NET 中是否有任何内置功能来识别何时对 WCF 服务进行调用,然后存储被调用方法的名称?

例如我们有下面的方法:

private void DoStuff()
{
object = Service.ServiceMethodCall();
}

在我看到的堆栈跟踪中,我可以恢复 DoStuff() 的名称和其他详细信息,但不能恢复 ServiceMethodCall()。我不想简单地将此方法的名称硬编码到我的输出中。必须有更好的方法。

谢谢

最佳答案

如果您正在尝试诊断 WCF 中的问题,您可以使用内置的 WCF 跟踪功能,我们发现这对于诊断是不可或缺的。为此(假设 WCF 托管在 IIS 中),将以下内容添加到 web.config:

  <system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="traceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="c:\log\WebTrace.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>

如果你正在调试并且有 VS Ultimate 2010,你也可以使用 IntelliTrace .

最后,如果您只是想跟踪发生的异常的来源,在异常中转储 StackTrace 将显示错误的来源,假设 WCF 服务调用是链中唯一包含异常处理程序。我们的开发实践要求,除非有特殊的、记录在案的情况,否则只有最外层的调用(即 WCF 服务条目)将包含异常处理程序。这大大减少了诊断和修复错误所需的时间。

更新

看起来 System.Runtime.Reflection.GetCurrentMethod可能会提供您正在寻找的信息。

关于c# - 是否有一个 C# 类用于跟踪服务方法调用,如堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8344107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com