解决过程:
重新启动IIS,未成功;
重新安装ASPJPEG,未成功;
在ASPJPEG.DLL目录执行Regsvr32 aspjpeg.dll,提示注册成功,运行依然失败;
换ASPJPEG另外一个版本安装,运行失败;
尝试在组件服务中注册此组件,运行失败;
考虑是否是其他问题,想到了组件权限,给aspjpeg.dll加上Everyone完全控制,重启IIS,运行继续失败;
将IIS的匿名用户IUSR_****更改成administrators组的用户,输入用户密码,重启IIS,执行成功。
其实我碰到的问题是搜索不到aspjpeg.dll组件,重新安装注册版酒可以了aspjpeg注册版v1.6
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
在Asp程序CreateObject的时候发生错误,大致内容为Server 对象 错误 'ASP 0178 : 80070005' ,这一般发生在较高版本的IIS或者Windows平台上.
如果你使用的是中文版,错误信息如下:
程序代码:
Server 对象 错误 'ASP 0178 : 80070005'
Server.CreateObject 访问错误
../config/coon.asp,行 5
检查权限时,对 Server.CreateObject 的调用失败。拒绝对此对象的访问。
如果是英文版,错误信息如下:
程序代码:
Error Type:
Server object, ASP 0178 (0x80070005)
The call to Server.CreateObject failed while checking permissions. Access is denied to this object.
../config/coon.asp, line 5
解决方法:
1. 调用"server.createObject("mssearch.application")"的时候发生错误,解决如下:
开始->运行->dcomcnfg
找到"mssearch"(这个名称取决于你调用的Object是什么),然后右键->Properties->security把三个权限都给everyone即可,其实第一个即可.
2. 出现上述问题时,原因确实是权限的问题。
一种解决办法是修改IIS的匿名访问的权限。
第二种最简单的办法就是将你的组件换个地方注册,特别是不要放到桌面或C盘的(系统盘)的某些特殊目录下注册;而应该放到如D,E等盘。原因是因为通常你的IIS所使用的帐号都是系统权限较低的帐号,如果你是以自己的帐号登录,那么桌面的访问的权限可能比IIS的帐号权限高。
3. 查了MS的资料库,解决的方法如下:
This article was previously published under Q315454
SYMPTOMS
When you attempt to browse to an Active Server Page (ASP) database results page created in Microsoft FrontPage, you may receive an error message similar to the following:
程序代码:
Server object error 'ASP 0178 : 80070005'
Server.CreateObject Access Error
../config/coon.asp, line 5
The call to Server.CreateObject failed while checking permissions. Access is denied to this object.
CAUSE
This behavior can occur if incorrect NTFS permissions are defined for your "%ProgramFiles%\Common Files\System" folder.
RESOLUTION
To resolve your issue, reset the NTFS permissions on the "%ProgramFiles%\Common Files\System" folder. To do this, follow these steps:
1.. Open Windows Explorer. To do this, right-click Start and then click Explore on the shortcut menu.
2.. In Folders view, expand the "%ProgramFiles%\Common Files\System" folder.
3.. Right-click the folder and click Properties on the shortcut menu.
4.. Click the Security tab.
5.. Add Everyone to the existing permissions, give at least Read permissions to Everyone, and apply these new settings to all files and subfolders.
6.. Click OK
IIS 错误,返回信息:
服务器对象错误 'ASP 0177:800401f3'
server.createObject 失败.
无效的 ProgID
具体是在创建一个对象的时候失败,可是我已经正确注册这个组件,并且返回注册成功;这个主页模板,我在别的地方用着很正常,可以确定是系统问题,检查注册表,组件也是写了注册表的,真是搞不明白。于是上网查了半天资料,方法归结有以下几种:
1、检查dll权限,应设置为iuser...或everyone访问;
2、检查filesystem组件权限,
HKEY_CLASS_ROOT\Scripting.FileSystemObject
鼠标右键,选择权限,加入user...和everyone
3、将IIS的匿名用户iuser...更改为administrator组用户,加入用户密码,重启IIS;
4、安装SP4;
5、注册Fso组件 scrrun.dll:
regsvr32 scrrun.dll
6、安装IE6;
7、安装 microsoft VM插件;
8、控制面板-〉管理工具-〉组件服务-〉DCom配置-〉注册组件-〉选中要注册的组件-〉属性-〉安全-〉访问权限-〉加入everyone;
9、修复ie,重新注册以下几个dll:
mshtml.dllshdoclc.dlljscript.dllsxs.dllusernv.dllshdocvw.dllscrrun.dll
令人遗憾的是,以上方法均不能解决问题,因为服务器采用的是fat32的文件系统,根本就不能设置权限。最后要求对方将服务器重新安装成ntfs格式,最终解决问题。
由此推测:fat32下的普通权限不足以让everyone用户运行有写组件,还是需要改为ntfs格式的,并且赋予everyone权限。
众所周知,FileSystemObject组件的强大功能及破坏性是它屡屡被免费主页
提供商(那些支持ASP)的禁用的原因,我整理了一下,本来只找到两种方法,后来
被某人一刺激,硬是想到第三种不为人所知的方法,呵呵,也不知道是不是这样的。
第一种:用RegSrv32 /u C:\\WINDOWS\\SYSTEM\\scrrun.dll(win98路径)来注销该组
件。此方法过于狠毒,属于同归于尽的方法,大家都没得用,是下招
第二种:修改Progid的值,在ASP里调用组件的方式通常是 Set 对象名=Server.
CreateObject("Progid"),这时候我们就可以通过修改注册表中的Progid值从达
到禁用该组件的方法。在 开始-运行中敲入regedit,然后找到HKEY_CLASSES_ROO
T\\Scripting.FileSystemObject,这时候我们就可以更改该Progid的值了,如改
成Scripting.FileSystemObject8。这样在ASP页里就这样调用了:
<%@ Language=Vbscript%>
<%
Set Fs=Server.CreateObject("Scripting.FileSystemObject8")
%>
(如果你前面没有调用过该组件的话,则无须重启,就可以看到效果了,否则请重
启后看效果。)
这时候我们看看还是用原来的调用方法的结果:
<%@ Language=Vbscript%>
<%
Set Fs=Server.CreateObject("Scripting.FileSystemObject")
%>
这时候的运行结果为:
服务器对象 错误 \'ASP 0177 : 800401f3\'
Server.CreateObject 失败
/aspimage/testfile2.asp, 行3
800401f3
(OK,达到我们的要求)
该方法由于本人迟了两步,结果就让别人抢着回答了,这样极大的刺激了我,结
果就产生了第三种方法。
第三种:细心的高手们会想,既然能通过修改Progid值来禁用该组件,那Clsid是
否也可以来修改呢?(OK,你想得和我一样)我们知道,除了CreateObject方法以
外,也可以使用一般的<object>标注建立一个组件,我们可以在ASP里面使用HTM
L的<object>标注,以便在网页中加入一个组件。方法是:
<object runat=server id=fs1 scope=page progid="Scripting.FileSystemObj
ect"></object>
Runat表示是在服务端执行,Scope表示组件的生命周期,可以选用Session,Appl
ication或page(表示当前页面,也可缺省)
这种写法对我们没用,还有一种写法是:
<object runat=server id=fs1 scope=page classid="clsid:clsid的值"></obj
ect>
我们也可以通过修改该Clsid的值而禁用该组件,如将注册表中HKEY_CLASSES_RO
OT\\Scripting.FileSystemObject\\CLSID的值0D43FE01-F093-11CF-8940-00A0C90
54228改成0D43FE01-F093-11CF-8940-00A0C9054229(改了最后面一位),这时候的
写法为:
<object runat=server id=fs1 scope=page classid="clsid:0D43FE01-F093-11
CF-8940-00A0C9054229"></object>
看运行结果,没问题,OK。这时候我们再用
<object runat=server id=fs1 scope=page classid="clsid:0D43FE01-F093-11
CF-8940-00A0C9054228"></object>
这时候就出错了。
新建一用户:iusr_domain
IIS里设置对应站点的匿名用户IUSR_DOMAIN
CACLS: 设置目录权限
操作系统:Windows2000,IIS5出现症状:使用ASPJPEG时执行Server.CreateObject("Persits.Jpeg")
ASP错误提示:
Server 对象 错误 'ASP 0177 : 800401f3'
Server.CreateObject 失败
无效的 ProgID。 若要获取关于此消息的更多的信息,请访问 Microsoft 联机支持站点: http://www.microsoft.com/contentredirect.asp 。问题分析:
提示Server.CreateObject 失败 ,一定是组件问题,应该从组件上着手解决过程:
重新启动IIS,未成功;
重新安装ASPJPEG,未成功;
在ASPJPEG.DLL目录执行Regsvr32 aspjpeg.dll,提示注册成功,运行依然失败;
换ASPJPEG另外一个版本安装,运行失败;
尝试在组件服务中注册此组件,运行失败;
考虑是否是其他问题,想到了组件权限,给aspjpeg.dll加上Everyone完全控制,重启IIS,运行继续失败;
将IIS的匿名用户IUSR_****更改成administrators组的用户,输入用户密码,重启IIS,执行成功。
本次问题解决了一半,ASPJPEG已经可以使用,但这样解决不能彻底解决问题,还会造成安全问题。本地测试可以使用此方法,不能在服务器等安全性需要较高的地方使用,继续寻找解决办法
该方法的缺点:赋予了IIS的匿名用户是管理员组成员后,IIS的访问用户就是以管理员身份登陆,在服务器环境下,客户端用户就可以很容易的控制服务器甚至破坏服务器。
新的解决办法:
点击“开始”-“运行”,输入“regedt32”,点击确定运行该注册表编辑器;
依次点击“HKEY_CLASSES_ROOT”、“Persits.Jpeg”,点击编辑器窗口工具栏上“安全”-“权限”,添加“IUSR_XXXX”用户,选择“读取”权限,点击确定;
依次点击“HKEY_CLASSES_ROOT”、“Persits.Jpeg.1”,点击编辑器窗口工具栏上“安全”-“权限”,添加“IUSR_XXXX”用户,选择“读取”权限,点击确定;
点击关闭按钮推出注册表编辑器;
重启IIS;
此时访问asp探针,ASPJPEG项已经显示支持,问题圆满解决。
提示Server.CreateObject 失败 ,一定是组件问题,应该从组件上着手解决过程:
重新启动IIS,未成功;
重新安装ASPJPEG,未成功;
在ASPJPEG.DLL目录执行Regsvr32 aspjpeg.dll,提示注册成功,运行依然失败;
换ASPJPEG另外一个版本安装,运行失败;
尝试在组件服务中注册此组件,运行失败;
考虑是否是其他问题,想到了组件权限,给aspjpeg.dll加上Everyone完全控制,重启IIS,运行继续失败;
将IIS的匿名用户IUSR_****更改成administrators组的用户,输入用户密码,重启IIS,执行成功。
其实我碰到的问题是搜索不到aspjpeg.dll组件,重新安装注册版就可以了aspjpeg注册版v1.6
你看一下是不是没有安装好aspjpeg组件,如果不是这个问题,那么,请你把这个报错的附近的代码发出来看一下
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)