SHDocVw开启新IE进程时报错80070002的解决方案

         在实现《C#控制IE浏览器自动执行百度搜索》时,遇到第一只拦路虎是: 检索 COM 类工厂中 CLSID 为 {0002DF01-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误: 80070002。

         首先,我的应用程序的实现环境:win7 professional / visual studio 2008 / IE11.

         根据该问题点的关键词搜索,下述内容几乎网上流传最多的解决方案:

         1. 在”开始”->”运行”中输入dcomcnfg.exe启动”组件服务”
         2. 依次双击”组件服务”->”计算机“->”我的电脑”->”DCOM配置”
         3. 在”DCOM配置”中找到”Internet Explorer“,在它上面点击右键,然后点击”属性”.


         4. 点击”标识”标签,选择”交互式用户”
         5. 点击”安全”标签,在”启动和激活权限”上点击”自定义”,然后点击对应的”编辑”按钮,在弹出的”安全性”对话框中填加一个”NETWORK SERVICE”用户(注意要选择本计算机名),并给它赋予”本地启动”和”本地激活”权限.
         6. 依然是”安全”标签,在”访问权限”上点击”自定义”,然后点击”编辑”,在弹出的”安全性”对话框中也填加一个”NETWORK SERVICE”用户,然后赋予”本地访问”权限.

         按照上述方案操作后依然报错,反复重启,错误依旧,因此相关设置仍改回原默认值。经过多次搜寻后,有位高人提出:此问题点可能与默认浏览器相关。于是我立即将默认浏览器修改为IE,果然不再报该错误了。但后来我将默认浏览器修改为非IE浏览器,程序也不会再报错了。这是为什么呢?

         我又将程序拷贝到另外一台电脑上运行,首次运行时也会报同样的错误,将默认浏览器修改为非IE浏览器后不会再报错。运行成功一次后,再将默认浏览器改回非IE浏览器,程序也不会再报错。

         如果你也遇到了同样的问题,这个方案也许可以帮到你。

      

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Fork me on GitHub