В определенных средах 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
.
Любые идеи или предложения будут с благодарностью.Заранее спасибо!-Макс