|
73
|
| Jaswant Agarwal · 技术社区 · 16 年前 |
|
|
1
38
您试图初始化的程序或进程可能未安装在您的计算机上、安装已损坏或需要注册。 安装、修复(通过添加/删除程序)或注册(通过regsvr32.exe)。 你没有提供足够的信息给我们帮助你。 |
|
|
2
54
您需要确保所有的程序集都是为正确的体系结构而编译的。如果重新安装COM组件不起作用,请尝试更改x86的体系结构。 |
|
|
3
11
我的问题和解决方法 我有一个32位的第三方DLL,它安装在2008年的64位R2机器上。 我有一个在.NET 4.5框架中创建的WCF服务,它调用进程的32位第三方DLL。现在,我已经将build属性设置为针对“any”CPU,并将其部署到64位计算机上。 当我试图调用wcf服务时,出现错误“80040154类未注册(hresult的异常:0x80040154(regdb_e_classnotreg)” 现在,我使用procmon.exe来跟踪COM注册表问题,并确定进程正在查找位于hklm\clsid和hkcr\clsid的注册表项,其中没有任何项。 我们知道,Microsoft不会将32位COM组件注册到64位计算机中的路径hklm\clsid、hkcr\clsid,而是将条目放置在hklm\ww6432node\clsid和hkcr\w6432node\clsid路径中。 现在冲突是64位进程试图在64位计算机中调用32位进程,该进程将在hklm\clsid、hkcr\clsid中查找注册表项。解决方案是我们必须强制64位进程查看位于hklm\wow6432node\clsid和hkr\wow6432node\clsid的注册表项。 这可以通过将WCF服务项目属性配置为目标为“x86”计算机而不是“any”来实现。 将“x86”版本部署到2008 R2服务器后,出现问题“System.BadImageFormatException:无法加载文件或程序集” 此BadImageFormatException的解决方案是在右AppPool的IIS AppPool属性中将“Enable32BitApplications”设置为“true”。 |
|
|
4
9
还要注意,初始化时类上下文可以创建该异常。如果有一个对象被编码为inproc_server,但是您试图将其共同创建为clsctx_local_server,那么您也会得到这个错误。 您需要确保对象已注册,并且coCreateInstance正在创建具有正确类上下文的实例。 |
|
|
5
9
如果在IIS上的Web应用程序中使用64位COM组件,请确保应用程序池设置为不允许32位应用程序( 启用32位应用程序:假 在高级设置中) |
|
|
6
4
我通过在应用程序池高级设置中启用32位应用程序使其正常工作。右键单击应用程序池并选择高级设置-启用32位应用程序。 这可能会帮助那里的人。 |
|
|
7
3
通过注册类(特别是它的clsid)——参见 here . |
|
|
8
2
|
|
|
9
2
我解决这个问题的方法是注册
确保您正在调用的COM已注册。
我的应用程序正在使用
|
|
|
10
1
对于我来说,我必须创建64位构建配置。 |
|
|
11
0
我通过COM从C++客户端调用这个.NET程序集。结果是找不到.NET程序集所依赖的程序集之一。我挣扎了一段时间,想弄清楚第一个组件出了什么问题,但它实际上是第一个组件的依赖项之一。在从C++客户端调用COCCREATIN()时,我收到了两个不同的错误。第一个是: 未注册regdb_e_ClassNotReg类 第二次尝试是: 0x80131040:找到的程序集的清单定义与程序集引用不匹配。 因此,请检查程序集的引用是否存在。 我通过使用dotpeek浏览第一个程序集发现了这个问题,并注意到其中一个引用丢失了。将依赖项的正确版本放在文件夹中解决了这两个错误。 |
|
|
12
0
我正在编译我的应用程序目标 任何CPU 主要问题是,Adobe Reader的安装时间较旧 V10 x 需要 升级 V1.x 这就是我解决这个问题的方法。 |
|
|
13
0
|
|
|
14
0
我使用COM类遇到了同样的问题,即运行时出现“类未注册异常”。对于我来说,我可以通过访问app.config文件并将“startup”和“supportedruntime”元素更改为如下内容来解决问题:
你可以在这里了解更多的细节 http://stackoverflow.com/questions/1604663/ 这里 https://msdn.microsoft.com/en-us/library/w4atty68(v=vs.110).aspx 我应该注意到我正在运行Visual Studio 2017。 目标CPU=x86 嵌入interop type=true(在“属性”窗口中) |
|
|
15
0
|
|
|
16
0
我使用MapWingis也有同样的问题。 我在Visual Studio 2015 Windows窗体项目上找到了解决方案,只需右键单击项目->属性->生成,将配置设置为所有配置,并在ConboBox“平台目标”中将其设置为x64。 |
|
|
17
0
转到.NET Framework目录并用注册它们各自的dll ReVSR32.EXE 空白dll路径。 |
|
18
0
我也面临同样的问题。在做了一些研究之后,我找到了适合我的修复方法,它可能会有用。从我的观察来看,这个问题不仅与重新安装有关,还取决于访问权限。 步骤1:修复特定的COM对象。 步骤2:组件服务>计算机>我的计算机>DCOM配置>选择您的COM对象>右键单击属性>安全选项卡>访问权限>选择自定义>单击编辑>选择IIS用户(如果不存在,请使用完整权限创建)并授予完全访问权限,然后单击确定。 转到“标识”选项卡>您可以选择“交互式用户”或“此用户”>单击“应用”并确定。如果您选择“此用户”,我们必须将管理特权用户授予该服务器 步骤3:打开IIS管理器>重新启动应用程序池。 注意:如果需要,请重新启动服务器 |
|
|
19
-1
在这里找到解决方案,运行mmc-32工具(而不是dcomcfg) 在具有32位Office的64位系统上,请尝试以下操作:
|
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |