我有一个调用.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。一些说明:
localhost
举办此活动。
http://1.2.3.4/...
),并且该IP位于IE的“可信站点”中。http://localhost/...
,而localhost
位于IE的“可信站点”中。http://localhost/cabs/myassembly.dll
。是否有任何人有任何想法可以尝试解决问题所在?或
免责声明:是的,我意识到这是2012年,世界已经超越了IE7,IE8,ActiveX等。让我们说我们在技术上有点落伍。这是我必须解决的问题;升级到现代解决方案不是一种选择。
更新:我确实让它在运行IE8的Windows XP VirtualBox中运行。因此,问题似乎是Windows 7特有的。它在本地计算机和运行Windows 7,IE8的VirtualBox上都失败了。
答案 0 :(得分:5)
通过添加"Loading .NET UserControls in IE with .NET 4.0"上回答的注册表项解决了这个问题(即使这是2.0控件)
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework]
"EnableIEHosting"=dword:00000001
答案 1 :(得分:1)
我不确定这会有所帮助,但我遇到了类似的问题,这通常会解决它。在无法正常工作的机器上尝试这些步骤。
Trusted sites
区域。Security
中的Internet Options
标签,然后点击Trusted sites
Default level
并确保选择Medium
。如果没有,请手动将其设置为Medium
。为了更好地衡量,请关闭所有IE窗口,然后重新启动并测试它是否有效。
关键问题是在第二条评论中 rene 链接的页面中讨论过的问题。从IE8开始,有一个安全设置在Custom level
选项列表中没有自己的UI。影响它的唯一方法是设置Level
- Medium
或更低设置为Enable
,而Medium-high
更高设置为Disable
。
现在这可能不是你的问题,因为Trusted sites
的默认级别通常是中,这将启用该设置。但至少值得尝试(可能你有一些组策略或者某些东西已经改变了可信站点的默认级别)。
答案 2 :(得分:0)
不要使用.dll文件。请改用.cab。