Я пытаюсь создать службу, которая работает в фоновом режиме на кучке удаленных компьютеров, которая будет просто контролировать, сколько раз IE используется для целей статистики. Большая часть моего кода написана, и он отлично работает на моем компьютере разработки, который имеет те же спецификации, что и удаленные компьютеры. Я также убедился, что на всех удаленных компьютерах есть Net Framework 4.5.1.HRESULT 0x80040202 при добавлении обработчика событий в ShellWindows
При запуске службы, я получаю сообщение об ошибке (я вхожу его)
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?
После быстрого поиска я нашел в [этом ответе] (http://stackoverflow.com/questions/1493268/error-connecting-to-third-party-app-via-com-mscorlib-exception-from-hresult -0x): «Код ошибки для этого HRESULT - CONNECT_E_CANNOTCONNECT. Обычно это возвращается как код отказа из IConnectionPoint :: Advise, потому что точка подключения не поддерживает базовый интерфейс». Может быть, вы попали на правильный путь ... –
Это ошибка из рамки OPC, моя из shdocvw. Они оба являются COM-расширениями, что делает сообщение об ошибке одинаковым, а google-поиск - кошмаром. В их случае, ONNECT_E_CANNOTCONNECT означает, что они не могут подключиться к OPC-серверу, но я только пытаюсь добавить обработчик событий в окно IE ... – GPierre
Я думаю, что это означает то же самое для shdocvw, поскольку это та же ошибка и связанные для COM, а не для конкретных компонентов. Он может не поддерживать базовый интерфейс, который он пытается использовать. –