我们在我们的IIS上托pipe.exe文件供我们的用户下载。 有直接的方法来知道有多less请求来文件下载,并从他们有多less完成(成功的下载)? 我必须parsing所有的日志吗?
谢谢
让我们假设以下是您的日志中的一行:
192.168.114.201, -, 03/20/01, 7:55:20, W3SVC2, SERVER, 172.21.13.45, 4502, 163, 3223, 200, 0, GET, /DeptLogo.gif, -,
GET =客户端请求的文件/文件
/DeptLogo.gif =请求的文件
200 =响应代码(200表示请求已经完成)
我不确定的唯一部分是如果响应代码200只会在文件完成发送到客户端(仍然不是100%保证它在客户端上正确完成)时触发,或者一旦服务器触发开始发送。 我会自己testing,下载文件并完成,检查日志,然后重复,这次取消下载并再次检查日志中的差异。
首先:是的,您需要parsing所有的W3SVC日志,以便全面了解* .exe文件的请求次数以及请求成功的次数。
IIS W3SVC日志将默认放置在:
%windir%\System32\Logfiles\W3SVC\[SiteID]\exYYMMDD.log
要么
%systemdrive%\Inetpub\logs\[SiteID]\exYYMMDD.log
取决于IIS版本。 这可以在顶层(服务器)级别和单个站点进行configuration。 W3SVC日志包含许多字段(这些字段都可以在IISpipe理器中打开或closures)。
你需要确保在这里(至less)下面的字段是启用的:
cs-uri-stem
sc-status
cs-uri-stem是主机名后面的所有内容,但是是任何查询数据之前的内容。
在这个例子中: https://some.domain.tld/give/me/files.exe?download=yes , cs-uri-stem将是: /give/me/files.exe
所以当你parsing日志文件时,用类似cs-uri-stem LIKE '*.exe'查询它们。 对于每个结果,请查看存储在字段sc-status的HTTP状态代码。 正如Tim所写, HTTP 200意味着成功。 如果下载开始,并且服务器正确地提供文件,但客户端取消/停止下载文件,则sc状态可能是206 ,这意味着部分内容; 内容/文件被提供,但客户端只接受了一些(或暂停下载)。
有关IIS 7.0和IIS 7.5中的HTTP状态代码列表,请参阅: http : //support.microsoft.com/kb/943891
有关IIS 5.0和IIS 6.0的类似列表,请查看: http : //support.microsoft.com/kb/318380