J2EE社区

苟有恒,何必三更起五更眠;
最无益,只怕一日曝十日寒.
posts - 241, comments - 318, trackbacks - 0, articles - 16

automation服务器不能创建对象

Posted on 2009-03-07 17:44 xcp 阅读(20517) 评论(6)  编辑  收藏
最近公司叫我做纯javascript上传文件,就只能用Scripting.FileSystemObject或者ActiveXObject("Scripting.FileSystemObject");,而在上传中也因为一些安全性问题导致“automation服务器不能创建对象”的问题,我不想让其他的哥们走弯路,以下是解决方案大全 :

1、如果是Scripting.FileSystemObject (FSO 文本文件读写)被关闭了,开启FSO功能即可,在“运行”中执行regsvr32 scrrun.dll即可

2、安全模式设置成“中”,如果javascript脚本中报这个错误,还应将IE的安全设置“不允许运行未标记为安全的activeX控件”启用即可。

注意如果您将相应的网站设成“受信任的站点”,必须对“受信任的站点”进行相应的IE安全设置,此时如果对“Internet”IE设置将是徒劳

的。

3、有些脚本需要微软的 MSXML 控件才能进入。当使用 IE 5 以上版本的缺省安全模式时,会提示是否接受 MSXML 控件,如果接受,MSXML 将

自动安装到您的机器上(得等上几分钟)。如果自动安装不成功,可以自行下载和安装 MSXML 3.0 SP7。有时是由于msxml 3服务被关掉了,使用

regsvr32 msxml3.dll即可

4、用上面方法基本上能决问题。如果是在安装某个软件后出现这种问题,可尝度卸载该软件或重装一下!


如果还是不行,试试以下方法:

5、请将以下语句复制到记事本中,另存为后缀为.cmd的文件,并运行。当然在命令行下一句句运行也没问题。

echo 正在修复,这个过程可能需要几分钟,请稍候……
rundll32.exe advpack.dll /DelNodeRunDLL32 %systemroot%/System32/dacui.dll
rundll32.exe advpack.dll /DelNodeRunDLL32 %systemroot%/Catroot/icatalog.mdb
regsvr32 /s comcat.dll
regsvr32 /s asctrls.ocx
regsvr32 /s oleaut32.dll
regsvr32 /s shdocvw.dll /I
regsvr32 /s shdocvw.dll
regsvr32 /s browseui.dll
regsvr32 /s browseui.dll /I
regsvr32 /s msrating.dll
regsvr32 /s mlang.dll
regsvr32 /s hlink.dll
regsvr32 /s mshtml.dll
regsvr32 /s mshtmled.dll
regsvr32 /s urlmon.dll
regsvr32 /s plugin.ocx
regsvr32 /s sendmail.dll
regsvr32 /s mshtml.dll /i
regsvr32 /s scrobj.dll
regsvr32 /s corpol.dll
regsvr32 /s jscript.dll
regsvr32 /s msxml.dll
regsvr32 /s imgutil.dll
regsvr32 /s cryptext.dll
regsvr32 /s inseng.dll
regsvr32 /s iesetup.dll /i
regsvr32 /s cryptdlg.dll
regsvr32 /s actxprxy.dll
regsvr32 /s dispex.dll
regsvr32 /s occache.dll
regsvr32 /s iepeers.dll
regsvr32 /s urlmon.dll /i
regsvr32 /s cdfview.dll
regsvr32 /s webcheck.dll
regsvr32 /s mobsync.dll
regsvr32 /s pngfilt.dll
regsvr32 /s licmgr10.dll
regsvr32 /s hhctrl.ocx
regsvr32 /s inetcfg.dll
regsvr32 /s trialoc.dll
regsvr32 /s tdc.ocx
regsvr32 /s MSR2C.DLL
regsvr32 /s msident.dll
regsvr32 /s msieftp.dll
regsvr32 /s xmsconf.ocx
regsvr32 /s ils.dll
regsvr32 /s msoeacct.dll
regsvr32 /s wab32.dll
regsvr32 /s wabimp.dll
regsvr32 /s wabfind.dll
regsvr32 /s oemiglib.dll
regsvr32 /s directdb.dll
regsvr32 /s inetcomm.dll
regsvr32 /s msoe.dll
regsvr32 /s oeimport.dll
regsvr32 /s msdxm.ocx
regsvr32 /s dxmasf.dll
regsvr32 /s laprxy.dll
regsvr32 /s l3codecx.ax
regsvr32 /s acelpdec.ax
regsvr32 /s mpg4ds32.ax
regsvr32 /s danim.dll
regsvr32 /s Daxctle.ocx
regsvr32 /s lmrt.dll
regsvr32 /s datime.dll
regsvr32 /s dxtrans.dll
regsvr32 /s dxtmsft.dll
regsvr32 /s wshom.ocx
regsvr32 /s wshext.dll
regsvr32 /s vbscript.dll
regsvr32 /s scrrun.dll mstinit.exe /setup
regsvr32 /s msnsspc.dll /SspcCreateSspiReg
regsvr32 /s msapsspc.dll /SspcCreateSspiReg
echo.
echo.
echo 修复成功!任意键退出!
pause>nul
回答者:



名称: ♪4C.ESL | .↗Evon
口号: 遇到新问题♪先要寻找一个方案乄而不是创造一个方案こ
mail: 联系我


Feedback

# re: automation服务器不能创建对象  回复  更多评论   

2009-03-08 14:53 by 银河使者
最好是直接做一个ocx组件,或applet也行(也可以访问本地文件,不过需要一此设置),不知为什么要使用纯javascript呢?出于什么目的?javascript本身不能访问本地文件,必须要借助象com、applet这样的技术才行。Scripting.FileSystemObject也是com组件。象网易相册这样的网站都是使用了ocx来实现上传的功能的。

# re: automation服务器不能创建对象  回复  更多评论   

2009-03-08 14:55 by 银河使者
楼主上面的命令上在客户端执行的吧?每个客户端都需要执行,有点麻烦哦!!

# re: automation服务器不能创建对象  回复  更多评论   

2009-11-05 14:34 by 杨化龙
非常感谢楼主的分享
但是您提供的几种方式我都试过了
都没有用。。、
非常苦恼。。
我的运行环境是Ie8或者Ie6都不行
我在Extjs的脚本文件中写了
fso = new ActiveXObject("Scripting.FileSystemObject");
就报 Automation 服务器不能创建对象
请楼主 给点意见

# re: automation服务器不能创建对象  回复  更多评论   

2009-11-08 15:44 by xcp
@ 杨化龙
杂说呢..主要考虑到安全性问题,所以现在不建议这么做了..说实话这个问题相当的苦恼啊..

# re: automation服务器不能创建对象[未登录]  回复  更多评论   

2012-10-11 08:18 by Selina
我们用那个网络考试的软件,老是出现这个问题啊,照着上面的做了,可是还是会出现啊,求高人指点啊

# re: automation服务器不能创建对象  回复  更多评论   

2013-05-23 13:18 by
将IE的安全设置“不允许运行未标记为安全的activeX控件”启用有用!

只有注册用户登录后才能发表评论。


网站导航: