vbscript返回空数据

时间:2009-08-23 14:48:17

标签: vbscript return scheduler

我在Windows调度程序中使用vbscript .vbs。

示例代码:

objWinHttp.Open "POST", http://bla.com/blabla.asp, false
objWinHttp.Send 
CallHTTP= objWinHttp.ResponseText

strRESP= CallHTTP(strURL)

WScript.Echo "after doInstallNewSite: " & strRESP

问题:blabla.asp正在处理需要大约1-2分钟才能完成的任务。 任务完成后应返回“成功”。 但它将空结果返回给服务器vbs。 (比完成事情的正常时间短。然后我去检查任务是否完成,答案也是。

我发现当任务需要更长时间才能完成时会发生这种情况。

这是vbs的弱点吗? 帮助!

4 个答案:

答案 0 :(得分:2)

您可以为winhttp组件指定超时:

objWinHttp.SetTimeouts 5000, 10000, 10000, 10000

它需要4个参数:ResolveTimeout,ConnectTimeout,SendTimeout和ReceiveTimeout。所有4都是必需的,以毫秒(1000 = 1秒)表示。默认值为:

  • ResolveTimeout:零(没有超时)
  • ConnectTimeout:60,000(一分钟)
  • SendTimeout:30,000(30秒)
  • ReceiveTimeout:30,000(30秒)

所以我建议增加ReceiveTimeout

答案 1 :(得分:0)

具体是什么是objHTTP?

查看目标服务器的日志,是否收到了请求?

答案 2 :(得分:0)

我在服务器日志中找不到这个。

objWinHTTP是发送呼叫并等待响应的标准协议。

我确实尝试过使用PHP和curl来完成整个过程,但失败了。原因:PHP是Windows服务器中组件的一部分。当来到全局特权和文件夹移动时,它由Windows服务器控制。所以我放弃了,并使用vbs。

objWinHTTP就像PHP中的卷曲一样。

答案 3 :(得分:0)

听起来像请求需要太长时间才能完成,服务器正在超时。我相信asp脚本的默认超时是90秒,因此您可能需要在IIS或脚本中调整此值,以便服务器在超时之前等待更长时间。

来自http://msdn.microsoft.com/en-us/library/ms525225.aspx

  

AspScriptTimeout属性   指定(以秒为单位)默认值   ASP页面允许的时间长度   脚本在终止之前运行   脚本和写一个事件到   Windows事件日志。 ASP脚本可以   使用。覆盖此值   ASP的ScriptTimeout属性   内置的Session对象。该   ScriptTimeout属性允许你的ASP   应用程序设置更高的脚本   超时值。例如,你可以   使用此设置调整超时   一旦特定用户建立了   通过登录或有效会话   订购产品。