【发布时间】:2011-11-20 09:24:51
【问题描述】:
我必须在 ASP 中为 WIN CE 设备创建一个页面范围 COM 对象。 Win CE 设备仅支持 httpd 服务器。
我尝试使用Server.CreateObject 语句创建com 对象以赋予它页面范围。但我收到以下错误
Parse error in script
Microsoft VBScript runtime error: '800a01b6'
Description: Object doesn't support this property or method: 'Server.CreateObject'
In file: /Polycold_WebGUI/PolyCold_system_home.asp
On line: 13
我该如何解决这个问题?
我可以在 Win CE ASP 中为 COM 对象提供 Page Scope 吗?
结果
方法GetUnitModelNumber 增加一个成员变量并返回结果。初始值为 0。每次执行 GetUnitModelNumber 时,该值都会递增。由于默认的对象生命周期是页面范围,我的期望是第二次 CreateObject 调用将返回已经创建的对象并且值将增加。但是当我执行以下代码时,我得到了 0。 以下代码有什么问题?
Dim objAd1,man
Set objAd1 = CreateObject("PolyColdDeviceCmds.SystemCmds")
man1 = objAd1.GetUnitModelNumber()
Set objAd1 = CreateObject("PolyColdDeviceCmds.SystemCmds")
man2 = objAd1.GetUnitModelNumber()
Response.Write(man2)
Response.Write("<script language='javascript'> alert("""&man2&""");</script>")
【问题讨论】:
-
如果您省略第二个 CreateObject 调用,它的行为是否符合您的预期?
-
“我的期望是第二个 CreateObject 调用将返回已经创建的对象(...)”,您为什么期待呢?如果你通过调用 CreateObject 来请求一个新对象,你会得到一个新对象...
-
@yms:我怎么能说它是 Page Scope?是不是我的理解有问题。是否可以在重新加载页面时使用该对象?
-
您能告诉我们您的最终目标是什么吗?
-
@yms:我的目标是在第一次加载页面时创建一个对象。当用户在页面上执行某些操作时使用相同的对象,例如:清除警报,执行命令等。即使用户刷新页面后我也应该能够使用该对象
标签: asp-classic vbscript windows-ce