我正在对使用获得向运行在 IIS 7 中的网站发送请求。批处理文件运行 Wget 两次,第一次通过 POST 登录网站,第二次通过 GET 运行网站中的一些维护代码。运行批处理文件的服务器和托管网站的服务器位于同一专用网络上。
第一个 POST 请求记录在 IIS 站点日志中。根据 Wget 的输出,它似乎对第二个 GET 请求进行了多次尝试 - 总共 20 次(通常) - 但都没有被记录。
有问题的批处理文件的(已编辑)内容:
wget --output-document=- --save-cookies cookies.txt --keep-session-cookies --post-data "[email protected]&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
来自批处理文件的最新执行的第二个 GET 请求的前两次尝试的 Wget(标准错误)输出的(已编辑)示例:
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 中。此批处理文件的最新执行的 GET 请求的 Wget(标准错误)输出的编辑示例:
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]
答案1
一个可能的答案是,请求没有被记录,因为 IIS 尚未收到来自网站的响应。基于这个答案对于现有问题IIS 何时记录请求?,肯定会如此。
也许 Wget 的设置是这样的,Wget 在等待响应五 (5) 分钟后放弃,而不是 15 分钟(这是根据Wget 文档)。