vbscript возвращает пустые данные - PullRequest
0 голосов
/ 23 августа 2009

Я использую vbscript .vbs в планировщике Windows.

Пример кода:

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

strRESP= CallHTTP(strURL)

WScript.Echo "after doInstallNewSite: " & strRESP

Проблема: blabla.asp обрабатывает задачу, выполнение которой занимает около 1-2 минут. Он должен вернуть «успех», когда задача выполнена. Но он возвращает пустой результат на сервер VBS. (короче обычного времени для завершения задания. Затем я проверяю, выполнено ли задание, ответ тоже да

Я обнаружил, что это происходит, когда для выполнения задачи требуется больше времени.

Это слабость VBS? Помогите !!!

Ответы [ 4 ]

2 голосов
/ 23 августа 2009

Вы можете указать время ожидания для компонента winhttp:

objWinHttp.SetTimeouts 5000, 10000, 10000, 10000

Требуется 4 параметра: ResolveTimeout, ConnectTimeout, SendTimeout и ReceiveTimeout. Все 4 являются обязательными и выражаются в миллисекундах (1000 = 1 секунда). Значения по умолчанию:

  • ResolveTimeout: ноль (нет времени ожидания)
  • ConnectTimeout: 60000 (одна минута)
  • SendTimeout: 30 000 (30 секунд)
  • ReceiveTimeout: 30 000 (30 секунд)

Поэтому я предлагаю увеличить значение ReceiveTimeout

0 голосов
/ 23 августа 2009

Я не могу найти это в журнале сервера.

objWinHTTP - это стандартный протокол для отправки вызова и ожидания ответа.

Я попытался использовать PHP и curl для выполнения всего процесса, но не получилось. Причина: PHP является частью компонента в Windows Server. Когда приходит глобальная привилегия и перемещение файловой папки, она контролируется сервером Windows. Поэтому я сдаюсь и использую VBS.

objWinHTTP - это что-то вроде скручивания в PHP.

0 голосов
/ 23 августа 2009

звучит для меня так, как будто запрос на выполнение занимает слишком много времени, и время сервера истекло. Я полагаю, что время ожидания по умолчанию для сценариев asp составляет 90 секунд, поэтому вам может потребоваться изменить это значение в IIS или в своем сценарии, чтобы сервер ожидал дольше, прежде чем истечет время ожидания.

С http://msdn.microsoft.com/en-us/library/ms525225.aspx:

Свойство AspScriptTimeout указывает (в секундах) значение по умолчанию промежуток времени, в течение которого страницы ASP позволяют скрипт для запуска перед завершением сценарий и запись события в Журнал событий Windows. ASP скрипт может переопределить это значение с помощью Свойство ScriptTimeout для ASP встроенный объект Session. Свойство ScriptTimeout позволяет вашему ASP приложение для установки более высокого сценария значение тайм-аута. Например, вы можете используйте этот параметр, чтобы настроить время ожидания когда конкретный пользователь устанавливает действительный сеанс при входе в систему или заказ товара.

0 голосов
/ 23 августа 2009

Что конкретно представляет собой objHTTP?

Глядя на журнал целевого сервера, был ли получен запрос?

...