6

我试图找出一台机器上奇怪行为的根源。我有一个可以交互运行的简单控制台应用程序,但是当我通过 WMI 调用它时,它会立即启动和退出。

我启用了 Fusion 日志,因为 Procmon 没有显示。我看到以下错误:

*** Assembly Binder Log Entry (31-01-2015 @ 19:22:51) *** 

The operation was successful. 
Bind result: hr = 0x1. Incorrect function. 

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll 
Running under executable C:\CMCBOOTSTRAP\Cmc.Installer.Agent.Console.exe 
--- A detailed error log follows. 

BEGIN : Native image bind. 
END : Incorrect function. (Exception from HRESULT: 0x00000001 (S_FALSE))

“功能不正确”的原因是什么?我还能看什么来确定为什么这个应用程序在通过 WMI 启动时有效地死掉了?

我的意思是微不足道的......

class Program
{
    static void Main(string[] args)
    {
        Thread.Sleep(30000);
    }
}

环境是 Windows Server 2012 R2 和 .NET 4.5。

4

2 回答 2

12

这是一个完全正常的事故,您可以通过在日志类别设置中选择“本机图像”单选按钮从 Fuslogvw.exe 获得它。在我自己的机器上也很容易重现,我看到了很多。

实际的错误代码是 S_FALSE,一个表示“成功失败”的 COM 错误代码。这就是为什么它说The operation was successful。将诊断消息误解为“功能失败”,这是 Windows 错误 1 ​​的描述,由 FormatMessage() winapi 函数返回。

成功失败完全在意料之中,您尚未在控制台模式应用程序上运行 Ngen.exe,因此它的本机映像不可用。继续看,不是这个。将日志类别改回“默认”,本机图像不是您的问题。

于 2015-01-31T16:21:17.363 回答
0

如果您的进程或 IIS 在 32 位上运行时具有 64 位依赖项,也会发生此错误。

于 2021-03-21T17:53:33.080 回答