COMException с использованием элемента управления WebBrowser в определенных средах 2008 R2 - PullRequest
5 голосов
/ 19 июля 2011

В определенных средах 2008 R2, а не в других, я получаю COMExceptions при использовании элемента управления System.Windows.Forms.WebBrowser.Независимо от того, определяете ли вы содержимое через свойство DocumentText или вызываете метод Navigate с параметром URL, я получаю одно и то же исключение:

COMException - ошибка HRESULT E_FAIL возвращена из вызова COMcomponent.

at System.Windows.Forms.UnsafeNativeMethods.IWebBrowser2.Refresh()

Я обнаружил, что установка свойства ScrollBarsEnabled для WebBrowser перед указанием DocumentText вызывает это исключение, и это выглядит какбыть в результате вызова метода Refresh (ссылка выше), когда в браузере нет содержимого (Последнее сообщение здесь ).Обходной путь для этого состоит в том, чтобы установить некоторое фиктивное содержимое и вызвать Application.DoEvents().Но даже с этим, это вызывает вышеупомянутое исключение при загрузке содержимого позже (сделано в другом потоке).

Обратите внимание, что делегат DocumentCompleted, который я указываю , это , которого ударили,но WebBrowser.axIWebBrowser2.StatusText показывает, что возникла исключительная ситуация, и WebBrowser.Document пусто.

Я мог бы создать простое приложение, чтобы воспроизвести проблему, но мне нужно было найти экземпляр R2 R2, гдеошибка воспроизводима для отладки.Я больше спрашиваю, есть ли у кого-нибудь идеи о том, что может повлиять или вызвать проблему, возможно, в связи с безопасностью COM и т. Д.

Обратите внимание, что я выполняю WebBrowser в состоянии STA Apartment.

Любые идеи или предложения будут с благодарностью.Заранее спасибо!-Макс

...