使用.NET 4.5在IE中加载.NET UserControls

时间:2012-08-24 12:44:25

标签: internet-explorer user-controls .net-4.5

有一个类似的问题:Loading .NET UserControls in IE with .NET 4.0这个问题基本相同,但 .NET 4.5

这个问题始于: 我有一个遗留应用程序,其中有一个UserControl,用作IE中加载的网页中的activex。在.NET 4.0之前,有安全策略和MMC控制台用于创建代码组等。看起来这一切都已经用于.NET 4.0。

安装.NET 4.5后,似乎解决方法不再有效,并且IE无法加载任何用户控件。我担心这个功能会被完全删除。在这种情况下,在我们的用户可以安装.NET 4.5之前,我们需要进行一些认真的重写。

一些说明:

  • 使用.NET 4.5 RC,一切都运行良好。 8 - (
  • Fuslogvw(程序集绑定日志查看器)在升级之前按预期运行,但升级后它不记录任何内容。 (并且未加载usercontrol。)
  • 在生产中,controll必须以完全信任的方式运行,但我所有的测试都是通过一个不需要这个的简单控件完成的。
  • 有关此功能的消息或信息的任何人?

    感谢

    1 个答案:

    答案 0 :(得分:30)

    这在MSDN上的.NET 4.5应用程序兼容性页面中有记录: http://msdn.microsoft.com/en-us/library/hh367887.aspx。不再支持在IE中托管托管控件(请参阅“Web应用程序”下的中途):

      

    特点:   托管浏览器托管来自.NET Framework 1.1和2.0的控件

         

    变化:   在Internet Explorer中阻止托管这些控件。

         

    影响:   Internet Explorer将无法启动使用托管浏览器托管控件的应用程序。通过将注册表子项HKLM / SOFTWARE / MICROSOFT / .NETFramework的EnableLegacyIEHosting值设置为1,可以恢复以前的行为。

    不幸的是,有关注册表项的信息似乎不完整和错误:

    • 该设置实际上称为“EnableIEHosting”。

    • 它必须位于HKCU Hive:HKCU \ SOFTWARE \ Microsoft \ .NETFramework

    • 或HKLM配置单元,但在不同的路径下,具体取决于32 / 64bit类型的Windows:
      • 32位系统:HKLM \ SOFTWARE \ MICROSOFT \ .NETFramework
      • 64位系统:HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ .NETFramework

    这已在Windows Server 2008R2和Windows 8上进行了测试。