出于安全考虑,IIS6的父目录访问默认是禁止的,但是某些ASP程序中如果用了../conn.asp这样的include的话,就无法正常访问了。
我的故障现象是这样的:在NTSF的XP系统中测试正常,上传到2003的服务器上以后,首页上的注册帐号登陆系统都正常,但是后台程序无法登陆,提示帐号密码错误。查看数据库以及所有目录权限都没看出问题。把on error resume注释掉再登陆后台就出现路径访问错误的信息。想了下就明白后台程序一般在admin目录里,要访问上级目录中的文件必须用../这样的父路径形式。
解决办法有三种:
启用父目录访问;或者用绝对路径方式访问;或者把需要include的文件复制到admin目录中来。
其实如果权限限制足够严格,启用父路径是安全的。
如果编程免费发布或作商业用途的话,应该是需要考虑这个因素的,尽量不要用../方式,以免一旦更换不同环境的服务器就出现故障。