2011-07-29 30 views
1

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

谢谢!

回答

3

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

当您在公用类中公开该COM服务器的类型时,您只需要PIA。不常见。 PIA与VS2010中出色的“嵌入互操作类型”选项一起成为历史。昵称为“no pia”选项。您通过Project +添加引用,浏览选项卡,选择c:\ windows \ system32 \ mshtml.tlb来避免PIA。 Windows早期版本中的.dll。

+0

我将IE7升级到IE8。阿联酋消失了。事情现在好了。但我仍然不确定这个根本原因。我想知道是否有不同版本的mshtml用于不同版本的IE。但我没有找到mshtml的官方下载网站。 – smwikipedia

+0

是的,当你升级IE时,你也会升级mshtml.dll。它包含在IE安装中,因此没有单独的下载。 –

+0

今天,我遇到了另一个问题与mshtml ..它给了我AccessDenied错误...哦上帝.... – smwikipedia

相关问题