Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 测量上传时间?_C#_Asp.net_Time_Measurement - Fatal编程技术网

C# 测量上传时间?

C# 测量上传时间?,c#,asp.net,time,measurement,C#,Asp.net,Time,Measurement,我有一个非常简单的页面,用户可以用它上传文件。仅使用服务器端C#(例如,代码隐藏),如何测量用户等待文件上载的时间量?这是非常困难的(好吧,这是在IIS6中)。您需要编写一个HttpModule来拦截上传并处理它,然后使用传入的文件的总大小(位于请求的头中),计算每秒得到的字节数,然后可以计算还剩多少时间 但是,您不能仅使用代码隐藏文件来执行任何操作--当请求到达asp.net处理程序时,该文件已经上载并可用。我必须找到类似的内容。如果您不关心完全的准确性,您可以向服务器发送一个快速呼叫,指示上

我有一个非常简单的页面,用户可以用它上传文件。仅使用服务器端C#(例如,代码隐藏),如何测量用户等待文件上载的时间量?

这是非常困难的(好吧,这是在IIS6中)。您需要编写一个HttpModule来拦截上传并处理它,然后使用传入的文件的总大小(位于请求的头中),计算每秒得到的字节数,然后可以计算还剩多少时间


但是,您不能仅使用代码隐藏文件来执行任何操作--当请求到达asp.net处理程序时,该文件已经上载并可用。

我必须找到类似的内容。

如果您不关心完全的准确性,您可以向服务器发送一个快速呼叫,指示上载正在开始,紧接着是上传请求。然后,服务器可以测量第一次呼叫和第二次呼叫完成之间的时间。

这并不像听起来那么容易,但我还是要投票。以两个用户同时上传文件为例——服务器需要能够区分唯一的文件开始时间。可行,但并非微不足道。由于第一个调用很可能是带外AJAX类型的调用,服务器上的数据结构需要是静态的,然后他需要清除它,等等。页面上的内容告诉我上传需要多长时间?你告诉过我如何计算速度,而不是持续时间?是这样吗?你的最后一段是相关的——说ASP.NET在请求完全上传到服务器之前不知道该请求?不,我告诉过你如何测量持续时间。一旦有了每秒字节数,如果知道文件的总字节数,就可以计算总时间。例如,如果每秒吞吐量为4000字节,而文件为16000字节,则总共需要4秒钟(估计;这些计算在完成之前永远不会完全正确)。这意味着您需要维护接收的总字节数和自启动以来经过的秒数——将这两个字节除以以获得每秒字节数,然后将以字节为单位的文件大小除以以每秒字节数获得整个文件的秒数。我描述的方法用于预测经过的时间(例如,通常会从总时间中减去总时间,给用户一个“还剩几秒”或任何提示)。如果我们知道您正在对数据做什么,这会很有帮助……如果您只是将其用于后端报告目的,Fisher先生的解决方案应该就足够了。我不是想告诉用户上传还剩下多少时间。我只是想审核上传花了多长时间。