| 但是这样做有利也有弊,权限设置的严了,程序就容易出现各种莫名其妙的问题,这不问题出来了: 
 检查权限时,对 Server.CreateObject 的调用失败。拒绝对此对象的访问
 
 问题出来了,怎么办呢?
 
 还是先弄明白来龙去脉再说。
 
 事情是这样的?
 
 今天把一个网站的数据从win2000服务器转移到了win2003服务器上,然后调试,发现在用aspjpeg组件上传图片的时候,提示出错:
 
 Server 对象 错误 'ASP 0178 : 80070005'
 
 Server.CreateObject 访问错误
 
 /upzip/up023ff.asp,行 49
 
 检查权限时,对 Server.CreateObject 的调用失败。拒绝对此对象的访问。
 
 找到第49行,发现是:
 
 Set Photo = Server.CreateObject("Persits.Jpeg") '建立对象
 
 问题的原因出来了,Aspjpeg组件调用的权限不够,这是由于默认的win2003服务器的安全设置太高,导致Aspjpeg组件的上传权限不够。
 
 必须对win2003服务器做相关的设置,才能解决问题。
 
 解决方法:
 
 1、
 
 因为是调用Server.CreateObject("Persits.Jpeg")的时候发生错误,解决如下:
 
 开始->运行->dcomcnfg
 
 找到"aspjpeg"(这个名称取决于你调用的Object是什么),
 
 然后右键->属性->安全 把读写权限都给everyone即可。
 
 2、
 
 也可以把aspjpeg.dll的读写权限赋给相关的用户。
 
 在aspjpeg.dll上右键--属性--安全----添加--高级--立即查找--添加users,默认读取、读取和运行权限即可。
 
 3、
 
 IIS里->目录安全性->编辑->匿名访问 去勾->确定后 可以访问了,
 
 然后再重新设置一遍,把匿名访问 加勾,以后就可以正常访问了。
 
 补充:
 
 后来,在微软的知识库里面搜索了一下找到一篇。
 
 他说设置一下%ProgramFiles%\Common Files\System的权限:
 
 Add Everyone to the existing permissions, give at least Read permissions to Everyone, and apply these new settings to all files and subfolders.
 
 翻译成中文呢,就是说,这里要赋予Everyone可以读和可以修改的权限,光给可读的权限是不够的,必须给可修改(或可写)的权限,才能解决该错误。
 
 |