Загрузка .NET UserControls в IE с .NET 4.0 - PullRequest
4 голосов
/ 26 июля 2010

У меня есть старое приложение, в котором есть UserControl, который используется в качестве activex на веб-странице, загруженной в IE. До .NET 4.0 существовали политики безопасности и консоль MMC для создания групп кода и т. Д. Кажется, что все это ушло с .NET 4.0.

Мне было интересно, может ли кто-нибудь подсказать мне, как обновить мой проект UserControl, чтобы он работал против .NET 4.0. Я провел несколько тестов, и ни один из них, похоже, не работает. Фактически, я заметил, что если я обновлю .NET-версию моего UserControl до 4.0 перед компиляцией, он даже не будет добавлен в область загрузки GAC. Он загружается (для проверки используется fiddler), но он просто не добавляется в область загрузки GAC. Установка версии платформы .NET на 3.5 или ниже означает, что dll добавлена ​​в GAC, но ее все еще нельзя использовать с веб-страницы (старый код JS, который работал раньше, постоянно говорит, что не может найти член X в объекте Y).

Итак, кто-нибудь может указать мне правильное направление? Что мне нужно сделать в .NET 4.0 для загрузки .NET UserControl в Internet Explorer?

спасибо.

Ответы [ 2 ]

9 голосов
/ 17 января 2013

Управление хостингом в IE теперь заблокировано по умолчанию (начиная с v4 или v4.5).См. статью MSDN в разделе «Веб-приложения».

К счастью, очень просто повторно включить эту функцию с помощью следующих клавиш reg:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework]
"EnableIEHosting"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework]
"EnableIEHosting"=dword:00000001

Клавиша x64это был тот, который исправил это для меня, запуск IE8 (x32) на Win7 (x64) с использованием элемента управления .Net v3.5 SP1, скомпилированного для x32.

0 голосов
/ 27 июля 2010

Хорошо, после нескольких тестов мне удалось заставить его работать. Вот некоторые вещи, которые вы должны иметь в виду:

  • вы не можете скомпилировать свою сборку для .NET 4.0, потому что IEHost устарел в .NET 4.0. Итак, вам придется скомпилировать против .NET 3.5
  • Поскольку вы компилируете под .NET 3.5, не забудьте установить правильные политики безопасности в консоли конфигурации .NET 2.0

И самое главное: не забудьте установить политики в правильной версии .NET. В моем случае я работаю на компьютере с 64-разрядной версией, поэтому я установил версию с 64-разрядной версией. установка правильных политик в установленной консоли не сработала, поэтому мне пришлось скачать и установить версию x86. После этого все стало работать хорошо (в конце концов, IE работал как 32-битное приложение)

Еще раз, я действительно не могу понять решение MS об отказе от IEHost без введения новой опции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...