对服务中的NullReference异常进行故障排除

时间:2008-09-07 16:46:48

标签: .net exception powershell service

我有一个运行各种系统监控操作的Windows服务。但是,在运行与SNMP相关的检查时,我总是会收到NullReference异常。通过用户界面(在我的用户名和密码下)运行时代码运行正常,但始终作为服务运行的错误。我已经尝试将服务作为不同的用户帐户(包括我的)运行,没有运气。我尝试通过调用PowerShell cmdlet get-snmp(来自/ n NetCmdlets)来替换SNMP监视代码,但这会产生相同的错误。

我正在使用的应用程序是PolyMon

有什么想法吗?

4 个答案:

答案 0 :(得分:2)

您可以在触发异常之前将调试器附加到正在运行的进程。这应该可以让您更好地了解应用程序的内容。

答案 1 :(得分:2)

一些调试方法:

  • Windows事件日志中是否还有其他信息?
  • 我相信你应该能够在windows服务中监听某种类型的全局异常事件,例如Application_Exception。我不记得确切的名字,但你可以从那里获得转储堆栈跟踪。
  • 您应该能够在服务模式下开始调试项目。

一些代码片段/堆栈跟踪/信息肯定会有所帮助。

答案 2 :(得分:1)

我们见过的一些事情 - 更多关于互动与服务之间的差异,但可能有所帮助......

我们看到的一件似乎并不重要的事情是与用户与系统路径的区别。

我们看到的另一件事与临时文件有关 - 我们在windows \ temp目录中创建了很多服务 - 我们在创建了65000个这样的文件时跟踪了这个文件,从而达到了极限目录可以容纳......

此致 克里斯

答案 3 :(得分:1)

之前我已经解决了这些问题,如果您还没有找到答案,我建议如下:

  • 启用跟踪/登录您正在使用的所有第三方应用程序和库,以便将错误记录到文件而不是stdout或stderr。很多时候,你会发现这些线索。
  • 您的Windows服务可能依赖于某些Windows网络设置在启动之前就位。这可能是由于环境(PATH,正如其他人所建议的)或由于对其他服务的“依赖性”。

周杰伦.........