【发布时间】:2010-09-08 18:44:12
【问题描述】:
我有一个使用 VS2008 用 C++ 编写的 Windows 服务。我现在想在我的 Windows Server 2008R2 上远程调试该服务。但是当我启动服务时,我收到一个应用程序错误消息:
错误应用程序名称:MyService.exe,版本:1.99.96.0,时间戳:0x4c87cf49 错误模块名称:MSVCR90.dll,版本:9.0.30729.4926,时间戳:0x4a1743c1 异常代码:0xc0000417 故障偏移量:0x0006c955 故障进程ID:0x1c08 错误应用程序启动时间:0x01cb4f7fd91b5804 错误的应用程序路径:C:\Services\MyService.exe 错误模块路径:C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4926_none_508ed732bcbc0e5a\MSVCR90.dll 报告 ID:171b562c-bb73-11df-81e0-003048788541
当我在发布版本中启动相同的服务时,一切都很好。该服务是针对 Microsoft.VC90.CRT 版本 9.0.21022.8 构建的,我有一个嵌入式清单。
到目前为止,我发现我的开发机器上也安装了 VS2010,因此我确实安装了 9.0.30729.4974 redist。 W2k8 服务器确实安装了所需的 x.x.x.4926。但是服务器上没有 x.x.x.4926 的调试版本,所以我认为这可能是问题所在。也许是缺少符号?
有人有想法吗?我有点绝望,因为我真的需要调试我的服务以检查严重错误。
您好, 西蒙
【问题讨论】:
-
如您所料,您需要在机器上安装调试 CRT 才能运行调试构建二进制文件。
-
正如本文social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/… 中所述,没有调试版本。