2011-05-13 57 views
0

我有一个WCF服务作为Windows服务托管。 在WCF服务代码库 - 错误处理代码,我加入了类似下面以显示EVENTVWR错误的详细信息(信息+堆栈跟踪):Windows服务安装项目 - 包括调试符号

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

要允许堆栈跟踪在事件查看器中显示出来,我去服务设置项目和添加项目输出以包含WCF服务库调试符号。

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

任何想法?

谢谢!

回答

0

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

几个可能的原因,你可能无法看到被记录的事件:

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