从IE8中的OBJECT标记调用.Net程序集

Dav*_*eer 6 .net asp.net internet-explorer internet-explorer-8

我有一个调用.Net程序集的网页.在Windows XP和IE7中一切正常.相关部分:

<html>
<head>
    <script language="javascript" type="text/javascript">
    function doScript() {
        myControl1.Go("value1","value2");
    }
    </script>
</head>
<body onload="javascript:doScript();">
    <object id="myControl1" name="myControl1" 
            codebase="../cabs/myassembly.dll" 
            classid="../cabs/myassembly.dll#MyNs.MyClass" 
            width="1" height="1"></object>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我无法在Windows 7中使用IE8.一些说明:

  • 这个集会很有名.
  • 我现在主持这个localhost.
    • 在正在运行的机器上(VirtualBox托管的WinXP,IE7),它正在使用我的本地机器(http://1.2.3.4/...)的IP地址,并且该IP位于IE的"可信站点"中.
    • 在无法运行的计算机上(Windows 7,IE8),它正在使用http://localhost/...localhost位于IE的"可信站点"中.
  • 大会正在提供http://localhost/cabs/myassembly.dll.
  • 错误消息是一个javascript错误,"对象不支持此属性或方法"
  • Fiddler在请求文件时显示200 OK响应,但是,似乎dll没有进入临时Internet文件位置.
  • 该站点以"IE 7兼容性"模式运行.
  • 我已将所有IE权限放弃到最不安全的地方,它会让你在所有区域中,并且行为完全相同.

有没有人有任何想法试图让这个工作或解决问题所在?

免责声明:是的,我意识到这是2012年,世界已经超越了IE7,IE8,ActiveX等.让我们说我们在技术上有点落后.这是我必须解决的问题; 升级到现代解决方案不是一种选择.

更新:我确实让它在运行IE8的Windows XP VirtualBox中运行.因此,问题似乎是Windows 7特有的.它在我的本地计算机和运行Windows 7,IE8的VirtualBox上都失败了.

Dav*_*eer 5

这是通过添加在"使用.NET 4.0在IE中加载.NET UserControls"中回答的注册表项来解决的(即使这是2.0控件)

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework]
"EnableIEHosting"=dword:00000001
Run Code Online (Sandbox Code Playgroud)