vbscript retornar dados vazios
Pergunta
Eu estou usando VBS VBScript no Windows programador.
Exemplo de código:
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á a lidar com uma tarefa que necessidade cerca de 1-2 minutos para ser concluído. Ele deve retornar 'sucesso' quando a tarefa concluída. Mas é retornar um resultado vazio para os vbs servidor. (Mais curto do que o tempo normal para concluir a coisa. Eu, então, ir para verificar se a tarefa for concluída, a resposta é sim também.
Eu achei que isso aconteça quando a necessidade tarefa mais tempo para ser concluído.
Esta é a fraqueza da VBS? Ajuda !!!
Solução
Você pode especificar o tempo limite para o componente winhttp:
objWinHttp.SetTimeouts 5000, 10000, 10000, 10000
É preciso 4 parâmetros: ResolveTimeout, ConnectTimeout, SendTimeout e ReceiveTimeout. Todos os quatro são requeridos e são expressos em milissegundos (1000 = 1 segundo). Os padrões são:
- ResolveTimeout: zero (sem tempo)
- ConnectTimeout: 60.000 (um minuto)
- SendTimeout: (. 30 segundos) 30000
- ReceiveTimeout: (. 30 segundos) 30000
Por isso, sugiro aumentar o ReceiveTimeout
Outras dicas
O que é objHttp especificamente?
Olhando para log do servidor de destino, foi o pedido recebido?
Não consigo encontrar isso no log do servidor.
objWinHTTP é um protocolo padrão para enviar chamada e aguarde a resposta.
Eu tentei usando PHP e curl para fazer todo o processo, mas não conseguiu. Motivo: PHP é parte do componente no servidor Windows. Quando vir a privilegiar global e pasta de arquivo em movimento, ele é controlado pelo servidor windows. Então eu desistir, e uso VBS.
objWinHTTP é algo agir como ondulações em PHP.
Parece-me que o pedido para está levando muito tempo para ser concluído e o servidor é o tempo limite. Eu acredito que o tempo limite padrão para scripts ASP é de 90 segundos para que você pode precisar de ajustar este valor no IIS ou no seu script de modo que o servidor irá esperar mais tempo antes do tempo limite.
A partir http://msdn.microsoft.com/en-us/ biblioteca / ms525225.aspx :
O AspScriptTimeout propriedade Especifica (em segundos) o padrão período de tempo que as páginas ASP permitir que um script para ser executado antes de terminar a script e escrever um evento para o Log de eventos do Windows. ASP pode script substituir esse valor utilizando o ScriptTimeout propriedade do ASP built-in objeto Session. o ScriptTimeout propriedade permite que o seu ASP pedido de estabelecimento de um script maior valor do tempo limite. Por exemplo, você pode usar essa configuração para ajustar o tempo limite uma vez que um determinado usuário estabelece uma sessão válida pela exploração madeireira ou encomendar um produto.