我们刚刚购买了一些软件,它为我们的电话系统提供了一个API,允许我们拨号、挂机等。该API被设计用于客户端(internet explorer / activex)。我们希望使用此服务器端,并通过对经典ASP脚本的ajax调用来执行拨号命令。
初始化组件的基本VBScript如下:
<%
set objPhone = server.createobject("XariosPhoneManager.PhoneManager")
objPhone.RemoteHost = "192.168.0.17"
objPhone.RemotePort = "2001"
objPhone.OAIPassword = ""
objPhone.Extension = "1000"
objPhone.Initialise()
set objPhone = nothing
%>但是我不能调用拨号命令
objPhone.MakeCall("1001")直到“初始化”事件发生。在传统的ASP中,有没有一种方法可以在执行一些代码之前等待事件触发?
发布于 2010-07-24 01:02:05
事实证明,这在ASP中是不可能的。没有公开说明组件已初始化的属性,只有初始化后触发的事件。不幸的是,ASP不能检测事件。开发人员建议将他们的组件包装在一个新的DLL中,该DLL负责事件管理,但我没有资源这样做。他们承诺在软件的未来版本中提供真正的服务器端功能
发布于 2011-04-27 01:44:07
这不是最优雅的解决方案,但您可以捕获错误,然后循环并重试调用,如果调用失败,则重试-您可以在循环中暂停以使进程有机会完成。你也可以限制尝试的次数,这样它就不会最终放弃,不会陷入无限循环。像这样的东西(未完成或测试):
numTries = 0
processComplete = False
Do Until processComplete or numTries>=10
On Error Resume Next
'## YOUR CODE TO CALL THE PROCESS HERE
On Error Goto 0
numTries=CDbl(numTries)+1
Loop发布于 2010-07-21 23:28:21
我对这个组件一无所知,所以下面涉及一些猜测工作。
1)如果组件在初始化时有一个要跟踪的属性,您可以对其进行检查,一旦初始化,就调用MakeCall方法。
2)我猜该组件有一个OnInitializedComplete事件(或类似的事件),如果有,用JScript编写您的服务器端代码并为该事件分配一个函数。
https://stackoverflow.com/questions/3288577
复制相似问题