我从来没有真正需要调试经典 ASP,所以这是一个有点粗糙而且很可能是一个糟糕的问题,但在提出这个问题之前我已经做了尽可能多的研究。
我有一个请求,以确定哪些代码打印到打印机,并在某人构建的新页面中重新使用该代码。
在试图找出这一点时,我偶然发现了一些我不明白的事情,但这是一件大事。
要点是,人们可以从自助餐厅订购饼干,当他们提交时,它会显示一个确认页面,并将该订单发送到打印机。
为了获取 cookie 选项列表,创建了一个服务器对象,并从那里存在一个方法,但我无法确定它在哪里或我应该在哪里查找。这是代码:
<%
On error resume next
Const CATAGORY_COOKIE = 1
Dim cookieNames
Dim objCookie
Dim Count
Set objCookie = Server.CreateObject("CookieOrder.CookieRequest")
if objCookie Is Nothing then
Response.Write "Error"
Response.End
End if
cookieNames = objCookie.getAvailable_Item_Names(CATAGORY_COOKIE)
Count = objCookie.Count
Dim sz
sz = Split(cookieNames, ";")
Set objCookie = Nothing
%>
Run Code Online (Sandbox Code Playgroud)
如何识别服务器对象是什么?有一个.dll包含二进制文件的文件,但我不熟悉如何使用它。
我尝试遵循浏览器开发工具,但它们在这方面确实没有太大帮助。
我希望了解这段代码是如何执行的或者在哪里执行的,我会解决我的其他问题。
该项目正在使用 COM+ 组件。这些是在经典 ASP 中使用以下语法定义的:
\nSet obj = Server.CreateObject("[insert COM+ ProgId]")\nRun Code Online (Sandbox Code Playgroud)\n在此项目中,您正在使用注册的组件ProgId
\nCookieOrder.CookieRequest\n\n
有许多现成的 COM+ 组件可用于经典 ASP,它们提供了许多常用功能,例如:
\n\nVisual Basic 脚本运行时\nActiveX 数据对象\n\n
还可以使用当时常见的语言(例如 Visual Basic、Visual C++ 以及最近使用的 .NET Framework (C#、VB.NET))创建与经典 ASP 一起使用的 COM+ 组件。
\n\n\n注意:访问注册表时请小心,因为修改或删除注册表项可能会导致操作系统损坏。
\n另外,出于本指南的目的,我们将使用 ProgId
\nScripting.Dictionary。
关键是使用 来ProgId找到难以捉摸的 COM+ 库。
启动%SystemRoot%\\system32\\regedit.exe (适用于大多数 Windows 操作系统)
导航到HKEY_CLASS_ROOT配置单元并选择它,然后按Ctrl+F打开“查找”对话框。
在Find what这种情况下,键入 ProgIdScripting.Dictionary并确保look at仅Key选中,然后按Find或Find Next。
如果ProgId找到某个键,则展开该键并找到CLSID包含(Default)REG_SZ 的键,在此示例中,该键的值是 CLSID {EE09B103-97E0-11CF-978F-00A02463E06F}。双击该值以打开Edit String对话框,将值复制到剪贴板中。
返回到该HKEY_CLASS_ROOT键并使用“查找”来搜索CLSID本例中的值{EE09B103-97E0-11CF-978F-00A02463E06F},并再次确保Look at仅Key选中,然后按Find或Find Next。
如果找到该键,请展开并找到InprocServer32其中的键,您将在 REG_SZ 值中找到 DLL 的位置(Default)。在此示例中C:\\Windows\\System32\\scrrun.dll (这将根据安装位置和操作系统而有所不同)
关于用于编译 DLL(主要是 .NET)的编译器的注释中有很多假设,但最好的检查方法是使用公共领域为此目的设计的众多程序之一。
\nSO 有一个具体问题涉及这个问题;
\n@simon-m\xe1\xb6\x9ckenzie 对识别 DLL 来源的回答
\n| 归档时间: |
|
| 查看次数: |
1640 次 |
| 最近记录: |