Domanda

Sono usando vbs VBScript in pianificazione di Windows.

Codice di esempio:

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

strRESP= CallHTTP(strURL)

WScript.Echo "after doInstallNewSite: " & strRESP

Problema: blabla.asp sta gestendo un'operazione che ha bisogno intorno 1-2 minuti per completare. Esso dovrebbe restituire 'successo' quando l'operazione completata. Ma restituisce un risultato vuoto per i VBS server. (Più breve del tempo normale per completare la cosa. Ho poi vado a controllare se l'operazione è completata, la risposta è sì anche.

Ho trovato questo accada quando l'attività ha bisogno di più tempo per completare.

E 'questo il punto debole di VBS? Aiuto !!!

È stato utile?

Soluzione

È possibile specificare i timeout per il componente winhttp:

objWinHttp.SetTimeouts 5000, 10000, 10000, 10000

Ci vuole 4 parametri: ResolveTimeout, ConnectTimeout, SendTimeout e ReceiveTimeout. Tutti 4 sono necessari e sono espressi in millisecondi (1000 = 1 secondo). Le impostazioni predefinite sono:

  • ResolveTimeout: zero (nessun time out)
  • ConnectTimeout: 60.000 (un minuto)
  • SendTimeout: 30.000 (30 sec.)
  • ReceiveTimeout: 30.000 (30 sec.)

Quindi suggerisco aumentare il ReceiveTimeout

Altri suggerimenti

Qual è objHttp specifico?

Guardando log del server di destinazione, è stata la richiesta ricevuta?

Non riesco a trovare questo in log del server.

objWinHTTP è un protocollo standard per inviare chiamata e attendere la risposta.

Ho provato con PHP e curl per fare tutto il processo, ma non è riuscito. Motivo: PHP è parte del componente di server Windows. Quando vieni a privilegiare globale e cartella di file in movimento, che è controllata dal server Windows. Così mi arrendo, e utilizzare VBS.

objWinHTTP è qualcosa di agire come ricciolo in PHP.

Sembra a me come la richiesta di sta impiegando troppo tempo per completare e il server è timeout. Credo che il timeout predefinito per gli script ASP è di 90 secondi, quindi potrebbe essere necessario regolare questo valore in IIS o nel vostro script in modo che il server attendere più a lungo prima del timeout.

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

  

La proprietà AspScriptTimeout   specifica (in secondi) di default   lunghezza del tempo che pagine ASP consentono un   l'esecuzione di script prima di terminare la   sceneggiatura e scrittura di un evento al   Registro eventi di Windows. script ASP può   sovrascrivere questo valore utilizzando il   Proprietà ScriptTimeout dell'ASP   incorporato nell'oggetto Session. Il   Proprietà ScriptTimeout consente al ASP   applicazione per impostare uno script più alto   valore di timeout. Ad esempio, è possibile   utilizzare questa impostazione per regolare il timeout   una volta un particolare utente stabilisce un   sessione valida per la registrazione o   ordine di un prodotto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top