ASP 0177:800401f3 错误解决

网络整理 - 09-08

  操作系统:Windows2000,IIS5

  出现症状:使用ASPJPEG时执行Server.CreateObject("Persits.Jpeg")

  ASP错误提示:

  Server 对象 错误 'ASP 0177 : 800401f3'

  Server.CreateObject 失败

  无效的 ProgID。 若要获取关于此消息的更多的信息,请访问 Microsoft 联机支持站点: 。

  问题分析:

  提示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项已经显示支持,问题圆满解决。