【问题标题】:Include File causing Error 500 in Classic ASP在经典 ASP 中包含导致错误 500 的文件
【发布时间】:2015-05-22 03:44:10
【问题描述】:

也许这是一个愚蠢的问题,但我不知道为什么会这样。

我必须对旧的经典 ASP 网站进行更新。其中一项请求是修改页脚,以便 cmets 和建议可以在管理面板中更改与链接关联的电子邮件。

这不是问题,所有页面上使用的原始页脚都添加为...

</div>
<!--#include file="../include/footer.htm"-->
</body>

如果我在这里添加输入代码

enter code here

到页面顶部并将扩展名更改为.inc或.asp,将原始页面修改为:

</div>
<!--#include file="../include/footer.inc"--> (or .asp)
</body>

...我收到错误 500。我尝试在浏览器中使用 Web 控制台,但没有其他信息,页面上也没有代码,只有将使用 VBScript 的声明。任何帮助将不胜感激。我敢肯定这是我 15 年前就知道的愚蠢的事情,但我不记得了,因为我从 2002 年起就没有接触过 ASP。

【问题讨论】:

  • 这确实是一个愚蠢的错误。正如约翰在下面指出的那样,我几乎在同一时间发现了这一点,您不想将脚本声明放入包含文件中。

标签: asp-classic


【解决方案1】:

在 iis 7 中默认禁用父路径。这意味着如果在包含文件路径中使用“../”会出错

http://www.iis.net/learn/application-frameworks/running-classic-asp-applications-on-iis-7-and-iis-8/classic-asp-parent-paths-are-disabled-by-default

您可以在 iis 管理器中启用它们,也可以使用 include virtual

<!--#include virtual="/root/include/footer.htm"--> 

您还可以使用 iis 管理器来编辑服务器如何处理错误页面,这样您就可以获得有用的调试文本,而不仅仅是 500 个内部服务器错误页面

【讨论】:

  • 父路径已启用。使用文件名为 .htm 的原始代码时没有问题。添加 vbscript 声明并将扩展名更改为 .asp 或 .inc 后发生错误
  • 如果您丢失了 vbscript 声明但保留了 .asp 扩展名会怎样?
  • 当您使用包含文件语句时,您所做的是告诉服务器在脚本运行之前将包含文件的文本复制并粘贴到您的 asp 脚本中。因此,在你的 include 中有一个 vbscript 声明就像在你的脚本中间有一个声明。
  • 嗨约翰....我回到这里的页面来更新显然是 VBSCRIPT 声明导致了这个问题。我希望你在大约 6 小时前偶然来到这里,但我仍然感谢你。
  • 我将您的答案标记为正确,因为您至少提供了一些人可能会尝试然后真正做到的东西。
【解决方案2】:

首先检查 IIS 配置

网络服务器导致的ERROR 500,google可以找到这个

【讨论】:

  • 我知道你想帮忙,但这是一个无用的答案。
  • 感谢您的帮助
【解决方案3】:

如果您将其设置为 .asp 或 .inc 页面,那么我建议您将页面内容设置为:

<%
'code here
%>

【讨论】:

    【解决方案4】:

    当您将 B.asp 包含到 A.asp 中时:还要检查:B.asp 不包含已在 A.asp 中声明的全局变量/函数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-17
      • 1970-01-01
      相关资源
      最近更新 更多