2016-02-24 4 views
0

Я пытаюсь создать службу, которая работает в фоновом режиме на кучке удаленных компьютеров, которая будет просто контролировать, сколько раз 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?

+0

После быстрого поиска я нашел в [этом ответе] (http://stackoverflow.com/questions/1493268/error-connecting-to-third-party-app-via-com-mscorlib-exception-from-hresult -0x): «Код ошибки для этого HRESULT - CONNECT_E_CANNOTCONNECT. Обычно это возвращается как код отказа из IConnectionPoint :: Advise, потому что точка подключения не поддерживает базовый интерфейс». Может быть, вы попали на правильный путь ... –

+0

Это ошибка из рамки OPC, моя из shdocvw. Они оба являются COM-расширениями, что делает сообщение об ошибке одинаковым, а google-поиск - кошмаром. В их случае, ONNECT_E_CANNOTCONNECT означает, что они не могут подключиться к OPC-серверу, но я только пытаюсь добавить обработчик событий в окно IE ... – GPierre

+0

Я думаю, что это означает то же самое для shdocvw, поскольку это та же ошибка и связанные для COM, а не для конкретных компонентов. Он может не поддерживать базовый интерфейс, который он пытается использовать. –

ответ

0

Оказывается, это была проблема с самим Internet Explorer.

Мы хотели, чтобы пользователи не делали много вещей на этих компьютерах, мы слишком много шутили с IE и должны были установить специальную версию, чтобы блокировать много вещей.

Я перестроил машину, протестировал сервис и отлично работает.

Смежные вопросы