Asp classic 为什么不是';是否在IIS7.5中包含对.asp页面的操作?

Asp classic 为什么不是';是否在IIS7.5中包含对.asp页面的操作?,asp-classic,iis-7.5,server-side-includes,Asp Classic,Iis 7.5,Server Side Includes,我看到了与此类似的问题,但我的问题略有不同: 我在IIS7.5服务器(R2008 V2)上使用include文件时会得到断断续续的结果。“我的包含”仅在与当前.asp页位于同一文件夹或当前页的子文件夹中时有效。这很不方便,因为我想把它们都保存在a/lib子文件夹中,不在主页面上 我的配置:我有一个名为DCN的文件夹,位于wwwroot文件夹的正下方。DCN文件夹中的/lib文件夹中有多个文件,因此绝对路径为c:\inetpub\wwwroot\DCN\lib\my\u include\u fil

我看到了与此类似的问题,但我的问题略有不同:

我在IIS7.5服务器(R2008 V2)上使用include文件时会得到断断续续的结果。“我的包含”仅在与当前.asp页位于同一文件夹或当前页的子文件夹中时有效。这很不方便,因为我想把它们都保存在a/lib子文件夹中,不在主页面上

我的配置:我有一个名为DCN的文件夹,位于wwwroot文件夹的正下方。DCN文件夹中的/lib文件夹中有多个文件,因此绝对路径为c:\inetpub\wwwroot\DCN\lib\my\u include\u file.asp。如果在DCN文件夹中打开ASP页面,则可以从/lib子文件夹中提取包含文件。但是,如果我从DCN/trouble文件夹(例如“DCN\trouble\Search.ASP”)打开一个ASP页面,并且Search.ASP页面上有一行内容是:

<!--#include file="../lib/my_include_file.asp"-->

include失败,我得到一个500错误

我也试过:

<!--#include file="/lib/my_include_file.asp"--> 

同样的结果。同:

<!--#include file="/DCN/lib/my_include_file.asp"-->

我将斜线改为反斜线,得到了相同的结果。我甚至尝试:

 <!--#include file="c:\inetpub\wwwroot\dcn\lib\my_include_file.asp"-->

(完全出于绝望),但我仍然得到同样的结果

如果我在dcn\trouble文件夹中创建子文件夹,我可以包含其中的文件,但显然,这并不理想


如有任何建议,将不胜感激。我忍不住觉得这是件小事。提前谢谢

我认为您的问题在于IIS中默认情况下禁用了父路径

您有两个选择:

  • 使用虚拟路径
  • 在IIS上启用ASP父路径
  • 有关详细信息,请阅读IIS网站上的这篇文章

    Yots是正确的,听起来好像父路径已关闭。如果无法在上启用这些选项,请改用虚拟路径:

    根据您的问题,您在哪里声明包含文件在
    /DCN/lib
    中,然后执行以下操作:

    <!-- #include virtual="/DCN/lib/my_include_file.asp -->
    
    
    
    使用虚拟路径时,必须指定文件的完整虚拟路径,即从站点根目录开始。如果您正在开发机器上的子文件夹中构建应用程序,使用XP,然后部署到生产机器的根目录中,那么这并不理想。也就是说,Vista或Windows7上的IIS7现在允许创建多个站点**

    使用路径类型为
    File=“…”
    时,文件名必须位于包含#include的文件夹的相对路径上。例如:

    指令
    将包含同一文件夹中的
    my\u include.asp

    指令
    将包含运行脚本的当前文件夹下文件夹
    lib
    中的
    my\u include.asp

    指令
    将包含运行脚本的当前文件夹(父文件夹)上方文件夹
    lib
    中的
    my\u include.asp

    指令
    将包含父文件夹(或当前文件夹的同级)子文件夹
    lib
    中的
    my\u include.asp

    如果未启用父路径,则最后两个示例将不起作用

    **我知道在XP的IIS5.1中存在启用多个IIS站点的黑客攻击。

    关于
    #包含虚拟
    ?如果是这样的话:

    #include virtual="\mysite\include\file.inc
    
    它应该在mysite下的include文件夹中找到
    file.inc
    ?我已经启用和禁用了父路径,并尝试了大约一百万种方法。对于找不到的文件,我仍然收到一个
    asp 0126错误
    。我可以将它切换为包含文件,然后它会找到它,但是file.inc有一堆其他包含文件,无论我如何将其更改为包含文件或虚拟文件,它都无法找到它们。它在IIS 6中工作,但不是我将此站点移动到的IIS 7。这是一个典型的asp页面,大部分内容都在包含文件中完成


    我的mysite位于
    默认网站\dept\u Sites\mysite
    位置。

    即使在父路径为disabled@eduardo-不会的,他需要使用
    <代码>
    只支持相对路径。就是这样。非常感谢你的帮助!您是否检查了lib文件夹中的ACL?