0

我们的应用程序是用优秀的 (?) ol' 经典 ASP 制作的。不理想,但它可以工作并且非常稳定 - 已经使用了 10-15 年。它在某些地方没有特别好的记录,例如出现“翻译”(客户控制的一段文本)的地方。我们反对翻译的只有一个clientid和translationid,这两者都不是特别有用。我已经尝试为(翻译 1)搜索(数千行的)核心代码,gettrans(1)并且可以看到为另一个 3100 执行此操作将是一场噩梦,更不用说不准确了,因为有很多函数被调用一个 transid 传递给他们,然后他们调用gettrans(transid).

我对这个问题的最后一个想法是我们可能会检测到,from gettrans,调用函数的位置——不仅是行号,还有包含的文件名(幸运的是,包含的命名很有用,因此可以确定翻译在哪里使用不应该太硬!)。我非常怀疑是否有可能在包含在 ASP 之前处理的基础上获得包含名称,但我会选择整体文件名,然后我们可以组合包含以到达代码行并记录包含文件名。

我非常怀疑这是可能的,在 SO 或 Google 上找不到任何东西。有谁知道实现这一目标的任何方法,或者对我可能尝试的方法有任何指示?提前致谢。

问候,理查德

4

1 回答 1

0

您可以实现的大部分目标是获取当前正在执行的脚本,可以通过以下方式获得:

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

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

然而,据我所知,使用经典 ASP 获取“被调用者”信息是不可能的,因此您必须向被调用的函数添加另一个参数,然后更改所有调用以传递参数以识别它的来源。看起来有人做了类似的事情并将其称为ASP Profiler,当然使用它需要您自担风险。(我自己没试过)

于 2013-01-31T08:02:02.517 回答