WindowsService.exe遇到问题,需要关闭。我们对造成的不便很抱歉

时间:2011-02-01 13:45:20

标签: .net windows-services windows-xp

我的服务有时会失败。它还不错,在Windows 7和Windows Server 2003上,服务重新启动。但在Windows XP上我看到消息“WindowsService.exe遇到了问题,需要关闭。我们很抱歉给您带来不便。”我将我的服务添加到要从错误报告中排除的应用程序列表中。它没有帮助 - 没有“发送报告”和“不发送”的消息显示。 在我的服务中没有未处理的exeption这一事实的主要问题。一个dll中存在错误(使用非托管鳕鱼),我无法纠正它。 我怎样才能设置我的服务,这是没有这种按摩的工作? 添加: 我在try / catch块中的所有代码。事件日志是“Faulting application WindowsService.exe,version 1.0.0.0,faulting module .dll,fault address 0x00010616。”

4 个答案:

答案 0 :(得分:2)

尝试捕获此异常是一个坏主意,访问冲突是一个非常讨厌的。订阅Main()方法中的AppDomain.CurrentDomain.UnhandledException事件。在事件处理程序中调用Environment.Exit(1)。这是 not 保证运行,非托管代码可能已经启动了自己的线程。您需要的大蒜交叉是SetUnhandledExceptionFilter(),您应该在C ++ / CLI中编写它。

答案 1 :(得分:0)

您可以将有问题的代码包装在try / catch块中并记录异常。

答案 2 :(得分:0)

尝试将有问题的代码包装在try / catch块中,然后从此处可以使用异常数据并将其写入可用于错误报告或调试的日志。

我假设您正在使用C#进行开发:

try/catch - C# Reference

答案 3 :(得分:0)

根据经验:

  • Windows服务中的所有直接方法都必须包含在try catch块中
  • 所有服务的OnStart必须做一个启动计时器/循环/投票工作者的最小事情。