我有一个调用 .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>
我无法在 Windows 7 和 IE8 中使用它。一些注意事项:
- 大会名称强。
- I am hosting this on
localhost
right now.
- 在正在工作的计算机(VirtualBox 托管的 WinXP、IE7)上,它使用我的本地计算机的 IP 地址(
http://1.2.3.4/...
)并且该 IP 位于 IE 的“受信任站点”中。
- 在不工作的机器上(Windows 7、IE8),它正在使用
http://localhost/...
and localhost
位于 IE 的“受信任站点”中。
- 大会的服务来自
http://localhost/cabs/myassembly.dll
.
- 错误消息是 JavaScript 错误,“对象不支持此属性或方法”
- 当请求该文件时,Fiddler 显示 200 OK 响应,但是,该 dll 似乎并未将其发送到临时 Internet 文件位置。
- 该网站正在“IE 7 兼容性”模式下运行。
- 我已将所有 IE 权限降至最不安全的级别,它允许您进入所有区域,并且行为完全相同。
有没有人有任何想法来尝试让它发挥作用或解决问题所在?
免责声明:是的,我意识到现在是 2012 年,世界已经超越了 IE7、IE8、ActiveX 等。我们只能说我们在技术上有点落后。这就是我要解决的问题;升级到现代解决方案将不再是一种选择。
UPDATE:我确实让它在运行 IE8 的 Windows XP VirtualBox 中工作。所以看起来这个问题是 Windows 7 特有的。它在我的本地计算机和运行 Windows 7、IE8 的 VirtualBox 上都失败了。
通过添加回答的注册表项解决了这个问题“使用 .NET 4.0 在 IE 中加载 .NET UserControls”(尽管这是 2.0 控件)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework]
"EnableIEHosting"=dword:00000001
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)