我正在使用Com对象。应该从作为特定帐户运行的Windows服务使用com服务器。但是当在此帐户中运行时,它无法加载com,从而给出了以下异常:由于以下错误,从IClassFactory创建具有CLSID {36998A63-857C-4B87-BC5E-72B7B3573F80}的COM组件实例失败:80010105
我尝试将帐户更改为LocalSystem,但仍然失败,但更改Windows服务以便以我自己的帐户登录。
我想这与我帐户上安装的com服务器有关。我使用“它的name.exe / regserver”安装com。我尝试将命令作为LocalSystem运行,然后失败并显示断言。我没有代码,所以我不知道问题出在哪里,是否有我应该检查的权限? 我也尝试在Visual Studio中切换嵌入互操作类型。
任何帮助?
答案 0 :(得分:3)
您看到的错误是RPC_E_SERVERFAULT
,这意味着进程外COM服务器中存在未处理的Win32异常(例如,可能是访问冲突)。如果COM服务器既没有源代码也没有调试符号,则您不太可能自己诊断或修复它。 (编辑:除非它明显像64位机器上的“bitness”不匹配:-))
选项:
答案 1 :(得分:2)
我刚从我们的朋友Hans Passant在Microsoft新闻组主题上找到了这个。它是如此的好和相关,我希望汉斯不介意我引用它。
啊,可怕的RPC_E_SERVERFAULT。 RPC在中安装SEH处理程序 捕获任何SEH异常的存根 发生在COM服务器中。甚至 非常糟糕的像AV。该 客户端会收到有关异常的通知 与0x80010105。哪个很糟糕, 没有办法获得任何信息 关于例外的任何事情。甚至 更糟糕的是,服务器只是继续运行, 现在通常有一个根本混乱 内部状态由于 例外。你无能为力 关于它,但试图调试COM 服务器找出它扔的原因 例外。如果是黑盒子的话 你,你会有一点时间 没有COM组件的支持 的供应商。