【发布时间】:2013-01-18 00:42:04
【问题描述】:
感谢您花时间阅读我的这个问题,我确信这是一个男生的错误,但对于我的一生来说,看不到它。
我有一个包含以下内容的 ASP 页面:
<!-- #include file="include.asp" -->
<%
Dim ConfigFile
ConfigFile = Left(Request.ServerVariables("URL"), InStr(Request.ServerVariables("URL"),"/framework/lib/dms/asp/"))
ConfigFile = ConfigFile & "project/config/ConfigDms.inc.asp"
%>
<HTML>
<HEAD>
</HEAD>
<BODY>
<%=ConfigFile%>
</BODY>
</HTML>
当作为独立页面访问时,或者通过 iFrame 调用时(不要问),这会起作用。但是,如果我添加“include ConfigFile”行,页面会在 IIS 中返回 404 错误。 ConfigFile 的值为“/cms/project/config/ConfigDms.inc.asp”,在页面正文中打印出来。
如果我添加“include https://xxx.xxx.xxx.xxx/cms/project/config/ConfigDms.inc.asp”行来替换原来的 include 语句,它会按预期工作。
现在我确定这是一个配置错误,但是尽管我将 ASP 设置“enableParentPaths”设置为 true 并将脚本“errorsenttobrowser”设置为 true,但我仍然没有得到任何结果。
我在另一台运行旧版本 IIS 的服务器上拥有相同的代码,并且运行良好,但是,我从未设置过原始服务器,也没有设置新服务器的文档。
导致 404 错误的 ASP 脚本如下所示:
<!-- #include file="include.asp" -->
<%
Dim ConfigFile
ConfigFile = Left(Request.ServerVariables("URL"), InStr(Request.ServerVariables("URL"),"/framework/lib/dms/asp/"))
ConfigFile = ConfigFile & "project/config/ConfigDms.inc.asp"
include ConfigFile
%>
<HTML>
<HEAD>
</HEAD>
<BODY>
<%=ConfigFile%>
</BODY>
</HTML>
但是这个文件可以正常工作:
<!-- #include file="include.asp" -->
<%
Dim ConfigFile
ConfigFile = Left(Request.ServerVariables("URL"), InStr(Request.ServerVariables("URL"),"/framework/lib/dms/asp/"))
ConfigFile = ConfigFile & "project/config/ConfigDms.inc.asp"
include "https://xxx.xxx.xxx.xxx/cms/project/config/ConfigDms.inc.asp"
%>
<HTML>
<HEAD>
</HEAD>
<BODY>
<%=ConfigFile%>
</BODY>
</HTML>
问候
【问题讨论】:
-
您在包含语句中究竟写了什么? ?开头的斜线表示 iis 查看网络的根目录。
-
第 1 行的包含文件工作正常,这不是问题。第二个包含文件没有在上面的代码中列出,但在下面的文本中提到,只包含一些用于定义集合变量的 CONSTANT。将此文件的内容添加到上面的代码中也可以,因此问题不是文件内容(因为当我使用文件的完整 https:// 路径时它也可以工作)。该文件的路径取自网站的根目录。
标签: iis asp-classic