RE — сбой IE при открытии методов для JS (особенно на виртуальных машинах)

Я разрабатываю BHO для IE на С#. Проблема, в которой я застрял, заключается в том, что IE падает, говоря, что

"Internet Explorer has stopped working"

тогда

"A problem with the webpage caused Internet Explorer to close and open the tab again"

Такое поведение наблюдается в Windows 10 (IE11) при использовании в качестве виртуальной машины. Однако тот же BHO отлично работает на физических машинах, а также в Windows 8.1 (IE11) как на физической, так и на виртуальной машине.

Обычно это происходит при переходе по ссылке в уже открытой вкладке или при обновлении страницы.

Я проверил по логам, это происходит при выставлении методов для JS через событие BeforeScriptExecute в этой строке p.SetValue(windowEx, this);

private void S2_BeforeScriptExecute(object pDispWindow)
{
    try
    {
        HTMLDocument doc = _webBrowser.Document as HTMLDocument;

        if (doc != null)
        {
            IHTMLWindow2 tmpWindow = doc.parentWindow;
            dynamic window = tmpWindow;
            IExpando windowEx = (IExpando)window;
            PropertyInfo p = windowEx.AddProperty("myExtension");
            p.SetValue(windowEx, this);
        }
    }
    catch (Exception ex)
    {
    }
}

Полный код опубликован здесь в вопросе.


person Mr. Usama    schedule 17.08.2020    source источник
comment
Я обнаружил, что вы уже задавали тот же вопрос. Я предлагаю вам сосредоточиться на одной теме и удалить повторяющуюся, чтобы она не смущала нас. Кроме того, я предлагаю вам проверить на реальном компьютере с Windows 10, чтобы увидеть, сохраняется ли проблема.   -  person Yu Zhou    schedule 18.08.2020
comment
@YuZhou Я проверил это на физических машинах, и там все работает нормально.   -  person Mr. Usama    schedule 18.08.2020
comment
Если это нормально работает на физических машинах, то я думаю, что это не должно быть проблемой с вашим BHO. Возможно, есть какие-то настройки среды, отличающиеся от реальной среды. Я думаю, что результаты тестов на физических машинах более точны, чем на виртуальных машинах.   -  person Yu Zhou    schedule 20.08.2020