【问题标题】:What causes the type initializer for 'System.Management.MTAHelper' to throw an exception是什么导致“System.Management.MTAHelper”的类型初始化程序引发异常
【发布时间】:2011-01-12 07:48:46
【问题描述】:

...以及如何解决?

从在 64 位 Windows 上运行的 32 位 .Net 应用程序抛出。

机器安装了require .Net框架。

Mozilla/4.0(兼容;MSIE 8.0; 视窗 NT 6.1;哇64;三叉戟/4.0; SLCC2; .Net CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729;媒体中心PC 6.0; .NET4.0C)

编辑: 这是内部异常

异常来源:System.Management

异常类型:System.Runtime.InteropServices.COMException

异常消息:正在检索组件的 COM 类工厂 由于以下错误,使用 CLSID {A8F03BE3-EDB7-4972-821F-AF6F8EA34884} 失败:80040154。

异常目标站点:.cctor

【问题讨论】:

    标签: .net winforms


    【解决方案1】:

    有一个MSDN post 报告了同样的问题,并给出了解决方案:

    于是我在我的 x64 环境中去了 HKCR\CLSID{A8F03BE3-EDB7-4972-821F-AF6F8EA34884}\InprocServer32(Default),看到如下路径:C:\Windows\system32\mscoree.dll。

    客户将在那里找到的C:\WINDOWS\SysWOW64\mscoree.dll 路径更改为正确的路径,他没有再次收到错误。

    没有解释为什么路径可能是错误的,但它似乎有效......您至少可以检查该注册表设置,看看它是否在有问题的盒子上看起来有问题。

    【讨论】:

    • 哈!发布此问题后,我在谷歌上找到了相同的帖子。我会试试的。谢谢!
    【解决方案2】:

    我刚刚解决了! 我不得不在 Windows 7 上重新安装 .NET 1.1。 方法如下:

    已下载:http://www.microsoft.com/Downloads/details.aspx?FamilyId=262D25E3-F589-4842-8157-034D1E7CF3A3&displaylang=en 已下载:http://www.microsoft.com/downloads/details.aspx?FamilyID=a8f5654f-088e-40b2-bbdb-a83353618b38&displaylang=en

    然后:

    mkdir c:\dotnetfx
    c:\DotNet
    dotnetfx.exe /T:c:\dotnetfx /C
    c:\dotnetfx\msiexec.exe /a netfx.msi TARGETDIR=C:\DotNet
    NDP1.1sp1-KB867460-X86.exe /Xp:C:\DotNet\netfxsp.msp
    msiexec.exe /a c:\DotNet\netfx.msi /p c:\DotNet\netfxsp.msp
    C:\DotNet\netfx.msi
    

    【讨论】:

      【解决方案3】:

      没有更多细节很难说,但是当你得到TypeInitializationException时,检查InnerException,它通常包含根本原因。

      【讨论】:

      • 内部异常添加到问题。
      猜你喜欢
      • 1970-01-01
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      • 2017-05-18
      • 2013-05-15
      • 2013-11-08
      • 2019-07-08
      • 2013-10-06
      相关资源
      最近更新 更多