向ShellWindows添加事件处理程序时的HRESULT 0x80040202

时间:2016-02-24 15:23:43

标签: c# .net shdocvw

我试图在一堆远程计算机上构建一个在后台运行的服务,它只会监控IE用于统计目的的次数。我的大多数代码都是编写的,它在我的开发计算机上运行得非常好,它与远程计算机具有相同的规格。我还确保远程计算机都具有Net Framework 4.5.1。

启动服务时,我收到此错误消息(我记录了)

System.Runtime.InteropServices.COMException (0x80040202): Exception HRESULT : 0x80040202
at System.Runtime.InteropServices.ComTypes.IConnectionPoint.Advise(Object pUnkSink, Int32& pdwCookie)
at System.Runtime.InteropServices.ComEventsSink.Advise(Object rcw)
at System.Runtime.InteropServices.ComEventsInfo.AddSink(Guid& iid)
at System.Runtime.InteropServices.ComEventsHelper.Combine(Object rcw, Guid iid, Int32 dispid, Delegate d)
at System.Runtime.InteropServices.ComAwareEventInfo.AddEventHandler(Object target, Delegate handler)
at ServiceLogger.Service1..ctor()

以下是导致此错误的代码,当我的服务由program.cs创建时发生,我没有修改program.cs。

InitializeComponent();
shellWindows = new SHDocVw.ShellWindows(); //Global var
shellWindows.WindowRegistered += shellWindows_WindowRegistered; <-- This is the error
我在谷歌搜索了一整天,没有人似乎有这个问题,它只发生在远程计算机上。这些计算机配置上是否存在导致此问题的内容? shdocvw库有问题吗?

1 个答案:

答案 0 :(得分:0)

事实证明,这实际上是Internet Explorer本身的一个问题。

我们想阻止用户在这些计算机上做很多事情,我们在IE上摆弄了太多东西,不得不安装一个特殊版本来阻止很多东西。

我重建了机器,测试了服务,它运行良好。