VBscript retour données vide
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 !!!
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.