经典ASP - 检测从中调用函数的行号和文件?

时间:2013-01-30 19:10:22

标签: asp-classic vbscript

我们的应用程序是用好的(?)ol'经典ASP制作的。不理想,但它很有效,而且非常稳定 - 已经持续了10到15年。在诸如“翻译”(客户端控制的文本片段)出现的地方,没有特别好的记录。我们反对翻译的所有内容都是一个clientid和translateid,两者都没有特别有用。我已经尝试搜索gettrans(1)(翻译1)的核心代码(成千上万行)并且可以看到为另一个3100执行此操作将是一场噩梦,更不用说因为有很多不准确用transid调用的函数传入它们,然后调用gettrans(transid)

我对此问题的最后一点想法是,我们可以从gettrans检测调用函数的位置 - 不仅仅是行号而是包含的文件名(谢天谢地,包括命名)有用的,所以弄清楚翻译的使用位置不应该太难!)。我非常怀疑有可能在包含ASP之前处理的包含名称,但我会满足于整体文件名,然后我们可以结合包含来获取代码行并记录包含文件名。

我非常怀疑这是可能的,无法在SO或Google上找到任何内容。有谁知道有任何方法可以实现这一点,或者有任何关于我可能尝试的方法的指示?提前谢谢。

此致 理查德

1 个答案:

答案 0 :(得分:0)

您可以实现的最多是获取当前正在执行的脚本,该脚本可以通过以下方式获得:

Dim currentPage
currentPage = Request.ServerVariables("SCRIPT_NAME")

当在包含页面内部时,它将为您提供“父”页面。

然而,据我所知,使用传统ASP无法获取“被调用者”信息,因此您必须向被调用的函数添加另一个参数,然后更改所有调用以传递参数以识别它来自何处。看起来有人做了类似的事情并称之为ASP Profiler,当然要自担风险使用它。 (从未尝试过自己)