Windows服务安装项目 - 包括调试符号

时间:2011-05-13 12:46:14

标签: windows-services

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

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

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

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

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

您不需要PDB符号来获取堆栈跟踪。只有在想要获取局部变量或源行号时,才需要管理二进制文件的PDB符号。

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

  • 您的服务帐户无权写入事件日志。例如,如果您要写入系统事件日志并使用常规用户帐户,则不会看到任何事件。
  • 不抛出这个例子。检查您的代码是否使用调试器实际调用。该故障可能已由较低级别的WCF代码处理。
  • 您的EventLogExceptionLogger实现中可能存在错误