我在 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的弱点吗?帮助!!!

有帮助吗?

解决方案

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

objWinHttp.SetTimeouts 5000, 10000, 10000, 10000

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

  • 解决超时:零(无超时)
  • 连接超时:60,000(一分钟)
  • 发送超时:30,000(30 秒)
  • 接收超时:30,000(30 秒)

所以我建议增加 ReceiveTimeout

其他提示

什么是objHTTP具体?

寻找在目标服务器的日志,是接收到的请求?

我无法在服务器日志中找到它。

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

我曾尝试使用PHP和卷曲做的全过程,但未能成功。原因:PHP是在Windows Server组件的一部分。当来到全局权限和文件夹移动,它是由Windows服务器控制。所以我放弃了,用VBS。

objWinHTTP东西行为像在PHP卷曲。

像请求的时间太长,完成并且服务器超时声音,我。我相信ASP脚本默认的超时时间为90秒,所以你可能需要在IIS或脚本来调整这个值,这样服务器在超时之前等待更长的时间。

http://msdn.microsoft.com/en-us/库/ ms525225.aspx

  

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top