HRESULT 0x80040202 при добавлении обработчика событий в ShellWindows
Я пытаюсь создать службу, работающую в фоновом режиме на нескольких удаленных компьютерах, которая будет просто отслеживать, сколько раз 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
Я искал весь день в Google, и никто, кажется, не имеет этой проблемы, и это происходит только на удаленном компьютере. Есть ли что-то на конфигурации этих компьютеров, что вызывает эту проблему? Есть ли проблема с библиотекой shdocvw?
1 ответ
Оказывается, это была проблема с самим Internet Explorer.
Мы хотели помешать пользователям делать много вещей на этих компьютерах, мы слишком много возились с IE и нам пришлось установить специальную версию, чтобы блокировать многие вещи.
Я восстановил машину, проверил сервис, и он работает нормально.