如果你试图诊断WCF的问题,你可以使用内置的WCF跟踪功能,这是我们发现这个不可缺少的。要做到这一点(在IIS托管假设WCF),添加以下的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旗舰版2010,您还可以使用IntelliTrace。
最后,如果您只是想跟踪发生的异常的来源,那么在异常中转储StackTrace将显示错误的来源,假定WCF服务调用是链中唯一包含异常处理程序。我们的开发实践要求,除非有特殊的记录情况,否则只有最外层的调用(即WCF服务条目)将包含异常处理程序。这大大减少了诊断和修复错误所需的时间。
更新
看来,System.Runtime.Reflection.GetCurrentMethod可以提供你正在寻找的信息。
看看这里:http://stackoverflow.com/questions/280413/c-sharp-how-do-you-find-the-caller-function – Samich
你如何访问该堆栈跟踪输出它? –
我正在使用此代码来获取最近的方法调用。 StackTrace stackTrace = new StackTrace(); _callingFunction = stackTrace.GetFrame(0).GetMethod()。Name; – CSharpened