Question

Je suis en utilisant .vbs vbscript programmateur Windows.

Exemple de code:

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

strRESP= CallHTTP(strURL)

WScript.Echo "after doInstallNewSite: " & strRESP

Problème: blabla.asp gère une tâche qui a besoin d'environ 1-2 minutes pour terminer. Il devrait revenir « succès » lorsque la tâche terminée. Mais il renvoie un résultat vide VBS serveur. (Plus court que le temps normal pour terminer la chose. Je vais donc vérifier si la tâche est terminée, la réponse est oui aussi.

Je trouve que cela se produise lorsque la tâche plus besoin de temps.

Est-ce la faiblesse de VBS? Aide !!!

Était-ce utile?

La solution

Vous pouvez spécifier les délais d'attente pour le composant winhttp:

objWinHttp.SetTimeouts 5000, 10000, 10000, 10000

Il faut 4 paramètres: ResolveTimeout, connectTimeout, SendTimeOut et ReceiveTimeout. Tous les quatre sont nécessaires et sont exprimées en millisecondes (1000 = 1 seconde). Les valeurs par défaut sont:

  • ResolveTimeout: zéro (pas le temps)
  • ConnectTimeout: 60 000 (une minute)
  • SendTimeout: 30.000 (30 sec.)
  • ReceiveTimeout: 30.000 (30 sec.)

Je suggère donc augmenter le ReceiveTimeout

Autres conseils

Qu'est-ce que objHTTP spécifiquement?

En regardant le journal du serveur cible, a la demande reçue?

Je ne trouve pas cela dans le journal du serveur.

objWinHTTP est un protocole standard pour envoyer des appels et attendre la réponse.

Je l'ai fait essayer d'utiliser PHP et curl pour faire tout le processus, mais a échoué. Raison: PHP fait partie du composant serveur Windows. Lorsque venu droit global et dossier en mouvement, il est contrôlé par le serveur Windows. Alors je donne, et vbs d'utilisation.

objWinHTTP est un acte de quelque chose comme boucle en PHP.

me semble la demande prend trop de temps pour terminer et le serveur est hors délai. Je crois que le délai d'attente par défaut pour les scripts asp est de 90 secondes de sorte que vous devrez peut-être ajuster cette valeur dans IIS ou dans votre script afin que le serveur attendra plus longtemps avant d'expirer.

De http://msdn.microsoft.com/en-us/ bibliothèque / ms525225.aspx :

  

La propriété AspScriptTimeout   spécifie (en secondes) la valeur par défaut   durée de pages ASP permettent une   script à exécuter avant de terminer la   scénario et l'écriture d'un événement à la   Journal d'événements Windows. script ASP peut   remplacer cette valeur en utilisant le   ScriptTimeout propriété de l'ASP   intégré objet Session. le   ScriptTimeout propriété permet à votre ASP   application à définir un script supérieur   valeur de délai d'attente. Par exemple, vous pouvez   utiliser ce paramètre pour régler le délai d'attente   une fois qu'un utilisateur particulier établit un   session valide par l'exploitation forestière ou   commander un produit.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top