经典ASP页面中是否包含最大数量的INCLUDES?

问题描述 投票:0回答:2

我正在对经典ASP页面进行一些更新,我注意到当我添加很多INCLUDES(即<!--#INCLUDE FILE="Foo.asp" -->)时,我得到一个通用的“HTTP / 1.1 500服务器错误”,在页面上以粗体显示。

这是值得注意的部分因为我通常会收到详细的错误消息(错误,文件,行等)

我已经检查过这些INCLUDES都没有错误。它似乎与INCLUDES的数量或.asp文件的完全编译大小有关。

这是我可以在IIS的ASP设置中修复的内容吗?

asp-classic include limits
2个回答
1
投票

我从来没有听说过包含的限制。但是结果页面可能太大了。您是否删除了所有包含并逐步退回?

或者我更喜欢一种动态包括。使用以下功能,您可以获得一些优势:可以动态包含文件。您的结果页面仅包含neccascary文件。主脚本中的变量可以在包含的文件中使用。您可以将asp代码放入数据库中。

但这种方式有一个限制:整个包含的文件必须用ASP编写。所以不允许使用<%= date%>。它必须写为response.write日期

我正在使用一个函数来包含asp文件:

function fGet(getFile)
' source: http://www.aspfaq.de/index.asp?FID=14&ELE=1223
                Set objFileSys = Server.CreateObject("Scripting.FileSystemObject")
    sPfad=Server.MapPath("./")&"\" &getFile

    Set objFile = objFileSys.OpenTextFile(sPfad)
        ' --- read the file
        FileContent = objFile.ReadAll
        objFile.Close
    Set objFile = Nothing
    Set objFileSys = Nothing

     fileContent=replace(fileContent,chr(60)&chr(37),"")
     fileContent=replace(fileContent,chr(37)&chr(62),"")

     Execute(FileContent)


end function

1
投票

试试<%response.buffer = false%>。它在IIS5.0及更高版本中默认为true,必须明确关闭。它应该是@LANGUAGE指令下面的第一行代码。

关闭此缓冲区将释放资源,因此您不会达到最大值。在您可能遇到大小限制的共享主机上,增加缓存大小并不总是可行的。

© www.soinside.com 2019 - 2024. All rights reserved.