如何知道某个PIA调用哪个COM组件?

时间:2011-07-29 10:04:55

标签: .net com interop

我的盒子上安装了PIA,它是 Microsoft.mshtml 。如果我理解正确,这些PIA是由Microsoft提供的,以减轻我们的COM互操作生活。但我想知道这个PIA实际包装/调用了哪个COM组件。因为我有一个UnauthorizedAccessException,我想找到实际的COM组件并使用 dcomcnfg.exe 授予它适当的权限。我希望这是正确的方向。

谢谢!

1 个答案:

答案 0 :(得分:3)

是c:\ windows \ system32 \ mshtml.dll。我严重怀疑dcomcnfg.exe将解决您的问题,这是一个进程内COM服务器。通过使用Sysinternals的ProcMon实用程序可以更准确地了解哪个注册表或文件访问正在生成异常。查找错误代码5。

当您在自己的公共类中公开来自该COM服务器的类型时,您只需要PIA。不常见。 PIA是VS2010中具有极好的“嵌入互操作类型”选项的历史。绰号“没有pia”选项。您可以通过Project + Add Reference,Browse选项卡避开PIA,选择c:\ windows \ system32 \ mshtml.tlb。早期版本的Windows中的.dll。