【发布时间】:2012-04-25 13:02:21
【问题描述】:
我有一个用 C# 编写的 Windows 服务。它在调用第 3 方 COM 组件时崩溃。该问题仅出现在 Windows 7(x86 和 x64)上。当我在 Windows 7(x86 和 x64)上运行与控制台应用程序相同的服务代码时,它运行良好。
当我在 Windows 2003 上运行相同的服务时,它也可以正常工作。我认为这可能与UAC有关。我正在寻找有关调试此服务的建议/指导,以确定导致问题的原因。对 ntdll.dll 使用调试符号?在事件日志中的信息下方。
Event ID: 1000, Level: Error
Faulting application name: ServiceHost.exe, version: 1.0.0.0, time stamp: 0x4f87bc9a
Faulting module name: ntdll.dll, version: 6.1.7601.17725, time stamp: 0x4ec49b60
Exception code: 0xc0000005
Fault offset: 0x0002bcbb
Faulting process id: 0x151c
Faulting application start time: 0x01cd1939c9017b2d
Faulting application path: E:\ServiceHost\bin\Debug\ServiceHost.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Report Id: 08da6aa3-852d-11e1-a889-00155d016f32
【问题讨论】:
-
HexCode 表示拒绝访问,这就是我 +1 @AgentFire 的原因。如果他的提示没有帮助,您将不得不进行内存转储以收集更多信息。关于 ntdll.dll 的符号,您只能获取公共符号,它们只会告诉您函数名称,您需要私有符号才能发现更多。
-
这里没有拒绝访问错误。 0xc0000005 是访问冲突。
-
制作一个简单的程序来重现故障并将其发送给第 3 方供应商
标签: c# windows windows-services crash