Я работаю с веб-приложением, которое использует пользовательский элемент управления .NET Windows Forms, размещенный в Internet Explorer с помощью тега «object» - например, <object id="myObj" height="100%" width="100%" classid="/MyVirtualDir/MyAssembly.dll#MyAssembly.MyControl" name="myObj">
Веб-приложение требует его добавления взона «Надежные узлы» и есть установщик для настройки разрешений CAS.Если у нас есть проблемы, мы также просматриваем многочисленные контрольные списки, чтобы убедиться в правильности установки разрешений для зоны надежных сайтов (и дополнительных параметров), чтобы позволить элементу управления .NET загружать и запускать.
Мы смоглизаставить это работать для тысяч клиентов, использующих IE6, IE7 и IE8, и для более 95% клиентов, использующих IE9.
Однако почти каждую неделю мы сталкиваемся с каким-либо клиентом, который был обновлен до IE9 (либо какновый ПК или обновление существующего ПК), где .NET Control отображается в виде белого поля с красным крестиком в верхнем левом углу.
Мы предприняли множество действий, чтобы попытаться устранить эту проблему:
- Мы перепроверили все разрешения «Надежные сайты», чтобы убедиться, что они установлены правильно.
- Мы убедились, что параметры расширенного Интернета соответствуют всем работающим машинам.
- Мы проверяем надстройки Internet Explorer и обычно отключаем все из них при устранении неполадок (особенно антивирусных надстроек, которые известныo запретить запуск элементов управления .NET)
- Мы проверили временные файлы Интернета на нескольких клиентах;Ссылочная управляющая DLL там не появляется
- Затем мы установили Fiddler2 для мониторинга запросов;Fiddler2 показал, что IE9 не делает запрос на загрузку управляющей DLL
Так что, похоже, IE9 вообще не может обработать тег «object».Такое поведение можно ожидать от страницы, загруженной в «Интернет-зону», но я не могу понять, почему это происходит с настройками доверенной зоны.
Я искал другие вопросы, подобные этомуот других людей - самый похожий вопрос, который я обнаружил, был размещен здесь (http://www.pcreview.co.uk/forums/embedded-usercontrol-sometimes-displays-red-x-internet-explor-t3608356.html), но это с 2008 года (до IE9), и никто так и не ответил.
Странная вещь в нашей проблеме - единственное решениемы обнаружили, что нужно удалить IE9 и вернуться к IE8 - это работало в основном каждый раз! Так что не похоже, что на этих клиентах может быть параметр групповой политики или что-то еще, что мешает IE даже пытаться загрузить.NET control, так как мы можем заставить его работать в IE8, он просто не работает в IE9.
Кто-нибудь знает, что здесь может происходить? Есть ли дополнительные настройки в IE9 (илинастройка Windows, на которую обращает внимание только IE9), которая помешает запуску элементов управления .NET на доверенном сайте?