vbscript devuelve datos vacíos
Pregunta
Estoy usando vbscript .vbs en el programador de Windows.
Código de muestra:
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 está manejando una tarea que necesita entre 1 y 2 minutos para completarse.Debería devolver "éxito" cuando se complete la tarea.Pero devuelve un resultado vacío al servidor vbs.(más corto que el tiempo normal para completar la cosa.Luego voy a comprobar si la tarea está completa y la respuesta es sí también.
Descubrí que esto sucede cuando la tarea necesita más tiempo para completarse.
¿Es esta la debilidad de vbs?¡¡¡Ayuda!!!
Solución
Puede especificar tiempos de espera para el componente winhttp:
objWinHttp.SetTimeouts 5000, 10000, 10000, 10000
Se necesitan 4 parámetros:ResolveTimeout, ConnectTimeout, SendTimeout y RecibirTimeout.Los 4 son obligatorios y se expresan en milisegundos (1000 = 1 segundo).Los valores predeterminados son:
- Tiempo de espera de resolución:cero (sin tiempo de espera)
- Tiempo de espera de conexión:60.000 (un minuto)
- Enviar tiempo de espera:30.000 (30 seg.)
- Tiempo de espera de recepción:30.000 (30 seg.)
Entonces sugiero aumentar el ReceiverTimeout
Otros consejos
¿Cuál es objHTTP específicamente?
En cuanto a registro del servidor de destino, fue la petición recibida?
No puedo encontrar esto en el registro del servidor.
objWinHTTP es un protocolo estándar para enviar la llamada y esperar la respuesta.
Yo probé usando PHP y el rizo de hacer todo el proceso, pero fracasó. Motivo: PHP es parte del componente de servidor de ventanas. Cuando vienen a privilegiar movimiento global y la carpeta de archivos, que es controlado por el servidor de Windows. Así que me rindo, y el uso de la EBV.
objWinHTTP es algo actúan como rizos en PHP.
me suena a la petición a está tomando demasiado tiempo para completar y el servidor es el tiempo de espera. Creo que el tiempo de espera predeterminado para los scripts ASP es de 90 segundos por lo que puede que tenga que ajustar este valor en IIS o en el script para que el servidor va a esperar más tiempo antes de que se agote el tiempo.
http://msdn.microsoft.com/en-us/ biblioteca / ms525225.aspx :
La propiedad AspScriptTimeout especifica (en segundos) el valor predeterminado cantidad de tiempo que las páginas ASP permiten una secuencia de comandos para ejecutar antes de terminar el script e incluir un suceso en el Registro de eventos de Windows. secuencia de comandos ASP puede reemplazar este valor mediante el uso de la ScriptTimeout propiedad del ASP incorporada objeto Session. los ScriptTimeout propiedad permite que su ASP solicitud de fijación de un guión más alto valor de tiempo de espera. Por ejemplo, se puede utilizar este ajuste para ajustar el tiempo de espera una vez que un usuario particular, establece una sesión válida por la tala en o ordenar un producto.