【问题标题】:Windows Service Setup Project - Include Debug SymbolsWindows 服务设置项目 - 包括调试符号
【发布时间】:2011-05-14 10:50:47
【问题描述】:

我有一个作为 Windows 服务托管的 WCF 服务。 在 WCF 服务代码库 - 错误处理代码中,我添加了如下内容以在 eventvwr 中显示错误详细信息(消息+堆栈跟踪):

    catch (Exception ex)
    {
        var logger = new EventLogExceptionLogger();
        logger.HandleException(ex); //Show exception Stack Trace in Event Viewer
    }

为了让堆栈跟踪显示在事件查看器中,我进入了服务设置项目并添加了项目输出以包含 WCF 服务库的调试符号。

现在,当我运行安装程序时,服务已成功安装,并且 WCFServiceLibrary.pdb 文件包含在安装文件夹中...但是当发生任何错误时,事件查看器中不会显示任何堆栈跟踪。

有什么想法吗?

谢谢!

【问题讨论】:

    标签: windows-services


    【解决方案1】:

    您不需要 PDB 符号来获取堆栈跟踪。仅当您想要获取局部变量或源代码行号时,才需要托管二进制文件的 PDB 符号。

    您可能看不到正在记录的事件的几个可能原因:

    • 您的服务帐户没有写入事件日志的权限。例如,如果您正在写入系统事件日志并使用常规用户帐户,您将看不到任何事件。
    • 不抛出异常。检查您的代码是否实际上是使用调试器调用的。失败可能已由较低级别的 WCF 代码处理。
    • 您的 EventLogExceptionLogger 实现中可能存在错误

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-03
      相关资源
      最近更新 更多