我有一个非常简单的JavaScript代码,
<script language="javascript">
function RunExe()
{
w = new ActiveXObject("WScript.Shell");
w.run('notepad.exe');
return true;
}
</script>
<form id="form1">
<div>
<input type="button" value="Run" onclick="return RunExe()" />
</div>
</form>
哪个创建一个activeX对象来运行notepad.exe,如果我将它保存在普通的html中并在IE中运行它,它可以很好地打开记事本,但是如果我将它插入到aspx页面并运行它,它会给出一个名为“自动化服务器无法创建对象”的错误,我搜索了很多次,但我已经完成了IE安全性的事情,我认为这是ASP或IIS中的一些我无法弄清楚的东西。
您的建议和意见非常明显。
感谢名单
答案 0 :(得分:24)
这是由Internet Explorer的安全设置引起的。您可以通过更改Internet Explorer设置来解决此问题。转到“设置” - >“Internet选项” - >“安全”选项卡。您将看到不同的区域:i)Internet ii)本地Intranet iii)可信站点iv)受限制的站点。根据您的要求选择一个区域。我在localhost中运行我的应用程序,所以我选择了本地Intranet,然后单击自定义级别按钮。它会打开安全设置窗口。请启用Initialize并编写未标记为可安全执行脚本的Activex控件选项。它应该可以正常工作。
答案 1 :(得分:11)
要实现这一点,您必须真正,真正地放松您的安全设置(通常不推荐)
您需要将网站添加到“受信任区域”,然后进入自定义设置(向下滚动约1/2页面)并更改:
ActiveX控件和插件 - 启用(或提示)...适用于您的代码的任何设置(我认为最后一个是您正在打的那个) - “脚本ActiveX控件标记为脚本安全*”
所有人都说,除非你有一个非常非常好的理由这样做 - 你在浏览器的安全性中开辟了一个主要的“漏洞”......非常谨慎地步骤......并且 做不 期望其他最终用户愿意这样做。
答案 2 :(得分:7)
嗯,你无法从记事本中运行代码,这意味着你要从文件系统中打开页面。又名c:/foo/bar/hello.html
当您从asp.net页面运行代码时,您将从localhost运行它。又名http://loalhost:1234/assdf.html
每个都在IE上的不同安全区域中运行。
答案 3 :(得分:7)
我也有同样的问题并解决它。 请浏览链接
将您的网站添加到受信任区域并更改以下选项: 工具菜单 - &gt;互联网选项 - &gt;安全 - &gt;自定义级别 - &gt; “初始化并编写未标记为可安全编写脚本的ActiveX控件”
答案 4 :(得分:1)
我有同样的问题,它通过注册dll来解决
at project properties =&gt; build =&gt;注册COM interop =&gt;检查
答案 5 :(得分:-1)
此错误是由Web应用程序和java之间的安全性离合引起的。要解决此问题,请查看控制面板下的java设置。将安全级别移动到介质。