在windows 2003 server 上运行ASP代码后发现如下错误(以前在windows 2000下测试可是没有任何问题的):
无法显示网页
您要访问的网页有问题,无法显示。
--------------------------------------------------------------------------------
请尝试以下操作:
打开 localhost 主页,然后查找指向您感兴趣信息的链接。
单击刷新按钮,或以后再试。
单击搜索,寻找 Internet 上的信息。
也可查看相关站点列表。
HTTP 500 - 内部服务器错误
Internet Explorer
在网上搜了半天,在通过查找日志文件发现,原来是版本不同了,后果不一样。
日志文件显示:
2006-08-02 09:33:03 127.0.0.1 POST /admin/ChkLogin.asp |2|ASP_0131|不允许的父路径 80 - 127.0.0.1 Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.2;+.NET+CLR+1.1.4322) 500 0 0
原来是在ChkLogin.asp里面有访问父文件夹里的文件的情况,那为什么在IIS5里可以,而在IIS6里却不行了呢?查找了一翻,终于找到了解决问题的办法,却不知道原因如何。
不允许的父路径
<!--#include file=../inc/jiami.asp-->,行 2
包含文件 '../inc/BBSsetup.asp' 不能用 '..' 表示父目录。
解决方法如下:
在 IIS 管理器中,展开本地计算机,右键单击要配置的应用程序的开始位置目录,然后单击“属性”。
单击“主目录”选项卡,然后单击“配置”。
单击“选项”选项卡。
在“应用程序配置”部分,选择“启用父路径”复选框。
单击“确定”。
Q:我的ASP文件包含文件的时候提示Active Server Pages 错误 'ASP 0131'不允许的父路径,如何解决?
A:在站点属性中选择主目录-配置-应用程序选项,将“启用父目录”选上。
Q:我的ASP文件包含文件的时候提示Active Server Pages 错误 变量未定义:_'session' ,如何解决?
A:在站点属性中选择主目录-配置-应用程序选项,将“启用会话状况”选上。
说明:
在IIS5中,应用程序配置(选项)中“启用父路径”是默认选中的,而在IIS6中,这个选项的默认状态是没有选中的。按上面的说明完成操作,问题终于得到了解决。有网友说(1)在IIS6中,ASP 页使用 #include 在服务器端的包含文件指令和 ".." 记号来引用某个父目录时存在着安全问题要引起重视;(2)IIS6的默认自定错误消息并不一定能全面准确地措出错误。不知道会不会这样,我还没有试过,有待大家讨论。