.net ActiveX не работает в рамках 4.0 - PullRequest
1 голос
/ 02 января 2012

У меня есть .net usercontrol, и я показываю его на странице asp.net как Object.Если целевая структура dll usercontrol составляет 3.5 - все работает.Если я изменю его на .net 4.0 - activex не будет виден.

Usercontrol очень прост.Это всего одна кнопка и одна метка:

[ComVisible(true)]
public partial class UserControl1 : UserControl
{
    public UserControl1()
    {
        InitializeComponent();
        label1.Text = "0";
    }
    private void button1_Click(object sender, EventArgs e)
    {
        label1.Text = Convert.ToInt32(label1.Text) + 1 + "";
    }
}

И это HTML-код:

<object id="myControl2" name="myControl2"
    classid="http:ClassLibrary1.dll#ClassLibrary1.UserControl1" 
    width="300" height="350" />
</asp:Content>

Почему это не работает?

Ответы [ 4 ]

3 голосов
/ 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.

2 голосов
/ 15 января 2013

Элементы управления Windows Forms больше не поддерживаются в .NET версии 4, и поддержка для них была удалена.

http://msdn.microsoft.com/en-us/library/vstudio/ee941656(v=vs.100).aspx

* Элементы управления хостингом в Internet Explorer *
Вы больше не можете размещать элементы управления Windows Forms в Internet Explorer,потому что есть лучшие решения для управления хостингом в Интернете.Поэтому сборки IEHost.dll и IEExec.exe были удалены из .NET Framework.

Вы можете использовать следующие технологии для разработки пользовательских элементов управления в веб-приложениях:

• Вы можете создать приложение Silverlight и настроить его для работы вне браузера.Дополнительную информацию см. В разделе Поддержка вне браузера.

• Вы можете создать браузерное приложение XAML (XBAP), чтобы использовать преимущества возможностей WPF (требуется .NET Framework на клиентских компьютерах).Для получения дополнительной информации см. Обзор приложений браузера WPF XAML.

1 голос
/ 18 января 2012

Я пытался сделать то же самое и нашел следующее:

Вы больше не можете размещать элементы управления Windows Forms в Internet Explorer, поскольку в Интернете есть более эффективные решения для элементов управления размещением. Поэтому сборки IEHost.dll и IEExec.exe были удалены из .NET Framework.

из этой статьи: http://msdn.microsoft.com/en-us/library/ee941656.aspx

1 голос
/ 02 января 2012

Вероятно, это проблема с набором правил безопасности, применяемым к сборкам, которые были обновлены до .NET 4.

Сборки, скомпилированные с более ранними версиями .NET Framework, имеют уровень прозрачности 1-го уровня. Сборки, которые были обновлены до 4.0 из предыдущих версий, имеют уровень прозрачности 2 по умолчанию. Вы можете явно сделать их уровнем 1. Вместо этого.

Попробуйте добавить следующее к AssemblyInfo.cs:

using System.Security;
// ...
[assembly: SecurityRules(SecurityRuleSet.Level1)]

Для получения дополнительной информации о наборах правил безопасности, пожалуйста, обратитесь к:

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