16

有一个类似的问题: 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 (Assembly Binding Log Viewer) 在升级前表现如预期,但升级后它没有记录任何东西。(并且没有加载用户控件。)
  • 在生产中,控件必须完全信任地运行,但我所有的测试都是通过一个不需要这个的简单控件完成的
  • 有人对此功能有任何建议或信息吗?

    谢谢

    4

    1 回答 1

    31

    这记录在 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 配置单元,但在不同的路径下,具体取决于 Windows 的 32/64 位类型:
      • 32位系统:HKLM\SOFTWARE\MICROSOFT\.NETFramework
      • 64 位系统:HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework

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

    于 2012-08-25T06:36:39.310 回答