Debugger.Launch(),Trace.Assert(失败)不起作用

时间:2010-02-04 08:24:21

标签: visual-studio sharepoint debugging windows-services log4net

(注意,此问题已在Debugging Sharepoint timer jobs中标记为已回答,但我仍遇到问题)

我无法调试SharePoint计时器作业。通常我可以通过设置其中一个来做到这一点:

  • Debugger.Launch()
  • Trace.Assert(false)

但是没有显示对话框。我有一个log4net OutputDebugStringAppender,以便我可以使用DebugView监视输出,我可以看到DEBUG ASSERTION FAILED正被写入调试日志。我已经尝试删除appender以防万一它可能搞砸了,但没有运气。

(重建,重启,IIS重置,服务重置,程序集中的pdb文件已完成)

那么为什么没有显示对话框?我可以在调试这个计时器工作时使用一些帮助,非常感谢任何想法。

1 个答案:

答案 0 :(得分:1)

您最有可能在调试模式而不是发布模式下运行您的应用。在调试模式下,您已经连接了Debugger,因此无法启动。

您可以通过以下方式找到是否附加调试器:

System.Diagnostics.Debugger.IsAttached

所以试试这样:

if(!System.Diagnostics.Debugger.IsAttached)
{
     System.Diagnostics.Debugger.Launch();
}
Trace.Assert(false)//Trace is not bound to Debug or Release mode so will always run