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 !!!

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top