Я устраняю неполадки в пакетном файле, который использует Wget для отправки запросов на веб-сайт, работающий в IIS 7. Пакетный файл запускает Wget дважды: первый раз для входа на сайт через POST, второй - для запуска некоторого кода обслуживания на сайте через GET. Сервер, на котором запущен командный файл, и сервер, на котором размещен сайт, находятся в одной частной сети.
Первый запрос POST регистрируется в журнале сайта IIS. Согласно выводам Wget, похоже, что он делает несколько попыток для второго запроса GET - всего 20 (обычно) - но ни одна из них не регистрируется.
(Отредактированное) содержимое проблемного командного файла:
wget --output-document=- --save-cookies cookies.txt --keep-session-cookies --post-data "UserName=user@example.com&Password=not-the-best-password&RememberMe=false" --no-check-certificate https://example.com/account/logon?returnurl=/
wget --output-document=- --load-cookies cookies.txt --no-check-certificate https://example.com/things/stuff/maintenance-code?x=E74B15D4-414E-468C-A340-621CC901CF1B
(Отредактированный) пример вывода Wget (стандартная ошибка) для первых двух попыток второго запроса GET из последнего выполнения командного файла:
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = C:\Program Files (x86)\GnuWin32/etc/wgetrc
--2013-04-19 05:15:16-- https://example.com/things/stuff/maintenance-code?x=E74B15D4-414E-468C-A340-621CC901CF1B
Resolving example.com... 172.17.21.255
Connecting to example.com|172.17.21.255|:443... connected.
WARNING: cannot verify example.com's certificate, issued by `blah-blah-blah':
Self-signed certificate encountered.
HTTP request sent, awaiting response... Read error (No such file or directory) in headers.
Retrying.
--2013-04-19 05:20:21-- (try: 2) https://example.com/things/stuff/maintenance-code?x=E74B15D4-414E-468C-A340-621CC901CF1B
Connecting to example.com|172.17.21.255|:443... connected.
WARNING: cannot verify example.com's certificate, issued by `blah-blah-blah':
Self-signed certificate encountered.
HTTP request sent, awaiting response... Read error (No such file or directory) in headers.
Retrying.
Есть еще один командный файл, который также использует Wget и запускает его дважды: первый раз для входа в систему точно так же, как и другой командный файл, а второй раз для запуска некоторых Другой код обслуживания на сайте, а также через GET, а запросы POST и GET регистрируются в IIS. Отредактированный пример вывода Wget (стандартная ошибка) для запроса GET для последнего выполнения этого командного файла:
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = C:\Program Files (x86)\GnuWin32/etc/wgetrc
--2013-04-19 06:58:50-- https://example.com/things/other-stuff/other-maintenance-code
Resolving example.com... 172.17.21.255
Connecting to example.com|172.17.21.255|:443... connected.
WARNING: cannot verify example.com's certificate, issued by `blah-blah-blah':
Self-signed certificate encountered.
HTTP request sent, awaiting response... 200 OK
Length: 15 [application/json]
Saving to: `STDOUT'
0K 100% 2.05M=0s
2013-04-19 06:59:06 (2.05 MB/s) - `-' saved [15/15]
Один из возможных ответов: запросы не регистрируются, потому что IIS не получил ответа от сайта. На основе этот ответ к существующему вопросу Когда IIS регистрирует запрос?, это определенно будет так.
Возможно, настройки Wget таковы, что Wget перестает ждать ответа через пять (5) минут вместо 15 (что является настройкой по умолчанию в соответствии с Документация Wget).