ActiveXObject创建错误“自动化服务器无法创建对象”

时间:2010-11-11 11:19:54

标签: javascript internet-explorer activex

我有一个非常简单的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中的一些我无法弄清楚的东西。

您的建议和意见非常明显。

感谢名单

6 个答案:

答案 0 :(得分:24)

这是由Internet Explorer的安全设置引起的。您可以通过更改Internet Explorer设置来解决此问题。转到“设置” - >“Internet选项” - >“安全”选项卡。您将看到不同的区域:i)Internet ii)本地Intranet iii)可信站点iv)受限制的站点。根据您的要求选择一个区域。我在localhost中运行我的应用程序,所以我选择了本地Intranet,然后单击自定义级别按钮。它会打开安全设置窗口。请启用Initialize并编写未标记为可安全执行脚本的Activex控件选项。它应该可以正常工作。

enter image description here

enter image description here

答案 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控件”

http://forums.codeguru.com/showthread.php?t=256114

答案 4 :(得分:1)

我有同样的问题,它通过注册dll来解决

at project properties =&gt; build =&gt;注册COM interop =&gt;检查

答案 5 :(得分:-1)

此错误是由Web应用程序和java之间的安全性离合引起的。要解决此问题,请查看控制面板下的java设置。将安全级别移动到介质。