代码之家  ›  专栏  ›  技术社区  ›  Simon Linder

在Windows Server 2008R2上启动调试生成时出现问题

  •  0
  • Simon Linder  · 技术社区  · 14 年前

    我有一个Windows服务,用VS2008编写的C++。我现在想在我的WindowsServer2008R2上远程调试该服务。但是当我启动服务时,我得到一个应用程序错误,上面说:

    错误应用程序名称:MyService.exe,版本:1.99.96.0,时间戳:0x4c87cf49 故障模块名称:MSVCR90.dll,版本:9.0.30729.4926,时间戳:0x4a1743c1 故障偏移量:0x0006c955 错误的应用程序路径:C:\Services\MyService.exe 报告编号:171b562c-bb73-11df-81e0-003048788541

    到目前为止,我发现由于我的开发机器上也安装了VS2010,所以我确实安装了9.0.30729.4974 redist。W2k8服务器确实安装了所需的x.x.x.4926。但是服务器上没有调试版本的x.x.x.4926,所以我认为这可能是问题所在。也许是缺少符号?

    问候, 西蒙

    1 回复  |  直到 14 年前
        1
  •  2
  •   Hans Passant    14 年前
    // MessageText:
    //
    // An invalid parameter was passed to a C runtime function.
    //
    #define STATUS_INVALID_CRUNTIME_PARAMETER ((NTSTATUS)0xC0000417L)
    

    这与CRT部署无关,尽管您部署了调试构建是很神秘的。代码只是在运行时错误时崩溃,该错误是由\u invalid \u parameter()函数引起的。当CRT函数检测到某个参数存在严重问题时调用。

    事实上,它不会发生在发布版本中,这并不是什么安慰,调试版本尤其容易导致这样的错误,因此您不会遇到发布版本中的问题 偶尔地 撞车。