我有一个include.asp
包含以下代码的全局文件:
if SomeCondition then
Response.Clear
Response.Status = "404 Not Found"
Server.Execute "/error404.asp"
Respnse.End
end if
另外两个文件,content.asp
和error404.asp
#include 这个文件。
内容文件将SomeCondition设置为 true ,从而导致错误页面为Server.Execute。但是,在错误页面中,同样的情况也会成立。这会创建一个无限循环,我最终会遇到以下错误:
Server object error 'ASP 0227 : 80004005'
Server.Execute Failed
/include.asp, line 1111
The call to Server.Execute failed
如何避免无限循环?我想到了这些解决方法:
一种
if SomeCondition then
if GetExecutedFileNameSomehow() <> "error404.asp" then
' ...
end if
end if
但我似乎无法通过代码获取错误文件的名称(我查看了服务器变量,所有点变量都引用了调用文件,即内容)。
乙
在内容文件中使用共享变量,例如 set BeingExecuted = true并在错误文件中检查它,但 Server.Execute 的问题是执行的脚本无法访问调用文件的变量。
请指教。