문제

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

ResolVetimeout, ConnectTimeout, SendTimeout 및 Lecketimeout의 4 가지 매개 변수가 필요합니다. 4 개는 모두 필요하며 밀리 초 (1000 = 1 초)로 표현됩니다. 기본값은 다음과 같습니다.

  • Resolvetimeout : Zero (시간이 없음)
  • ConnectTimeout : 60,000 (1 분)
  • SendTimeout : 30,000 (30 초)
  • 채권 시간 : 30,000 (30 초)

따라서 채권을 늘리는 것이 좋습니다

다른 팁

구체적으로 objhttp는 무엇입니까?

대상 서버의 로그를 살펴보면 요청이 접수 되었습니까?

서버 로그에서 이것을 찾을 수 없습니다.

OBJWINHTTP는 전화를 보내고 응답을 기다리는 표준 프로토콜입니다.

전체 프로세스를 수행하기 위해 PHP와 CURL을 사용하려고했지만 실패했습니다. 이유 : PHP는 Windows Server의 구성 요소의 일부입니다. 글로벌 권한 및 파일 폴더 이동에 따라 Windows Server에 의해 제어됩니다. 그래서 포기하고 VBS를 사용합니다.

objwinhttp는 php에서 컬과 같은 작용입니다.

요청이 완료하는 데 너무 오래 걸리고 서버가 타이로 떨어지는 것처럼 들립니다. ASP 스크립트의 기본 타임 아웃은 90 초라고 생각하므로 IIS 또는 스크립트 에서이 값을 조정하여 서버가 타이밍을 시작하기 전에 더 오래 기다릴 수 있습니다.

에서 http://msdn.microsoft.com/en-us/library/ms525225.aspx:

AspscriptTimeout 속성은 스크립트를 종료하고 이벤트를 Windows 이벤트 로그에 작성하기 전에 스크립트를 실행할 수있는 기본 시간을 (초) 지정합니다. ASP 스크립트는 ASP 내장 세션 객체의 ScriptTimeout 속성을 사용 하여이 값을 무시할 수 있습니다. ScriptTimeout 속성을 사용하면 ASP 응용 프로그램이 더 높은 스크립트 타임 아웃 값을 설정할 수 있습니다. 예를 들어, 특정 사용자가 로그인하거나 제품을 주문하여 유효한 세션을 설정하면이 설정을 사용하여 타임 아웃을 조정할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top