日期:2014-05-16  浏览次数:21550 次

问题,服务器如何统计软件真实的下载量(注意,是真实的)?
软件下载完成后,服务器才真正统计,如果客户点击了取消或者中途停止不算。

用asp和php的方法不用说了,asp功能没有这么强,统计不到这么精确,不能监控客户端行为。

我想,要解决这个问题必须要从服务器的层面来解决了,这个应该没有不能办到的,服务器和客户端通讯,下载的文件分成n个包传送,文件传送结束后,服务器肯定知道的。

各位朋友可以说说自己的观点,不一定要能完全解决我的问题,只要有知道往哪个方面入手即可,比如说在iis上面可以这样解决啊,apache上可以那样解决,或者用cgi,或者是jsp可以解决什么的,只要有这方面的信息,都欢迎涉入。

我现在只是想要知道解决的方法,至于网站服务器类型不限,语言不限。

就只有50分,希望大家说说自己的看法,交流下经验,谢谢。

------解决方案--------------------
先让用户下载个下载客户端,由下载客户端和服务器联系,这样统计的效果肯定真实
------解决方案--------------------
我给你讲一下IIS6的做法。

凡是成功下载成功的,你就能在IIS日志里面找到一条相应的status为200的纪录。你只要统计这个日志里面你的软件的文件名(如XXX.exe)向对应的200的记录条数,就可以实现你的需求了。

此外,根据这一条日志记录里面"Bytes Sent"的大小,你可以进一步确认是否完全下载完毕了。
http://technet.microsoft.com/en-us/library/cc786596(WS.10).aspx

如果下载到一半用户取消了或者网络断掉了,你可以在HttpErr日志里面发现一条Connection_Dropped记录
http://support.microsoft.com/kb/937692
------解决方案--------------------
很抱歉,没办法。
文件的下载是由web服务程序所控制的,比如w3wp.exe把数据发给网络层。
你连IIS日志都无法得到的话,又如何能得到w3wp.exe进程的运行状态呢?那么也就无法得到下载的进行时信息。

谢谢!