Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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
asp.net c#向客户端发送二进制文件速度问题_C#_File_Download - Fatal编程技术网

asp.net c#向客户端发送二进制文件速度问题

asp.net c#向客户端发送二进制文件速度问题,c#,file,download,C#,File,Download,我有两个不同的类,我正在测试发送文件到浏览器。 第一个是at使用特定于范围的头,以便提供恢复 第二个是at使用块读取发送大文件。 两者都适用于一种不同的情况。就下载速度而言,第一个比第二个慢很多。第一个我不能超过80KB/s,第二个我可以尽可能快 我做了一些测试,结果是一样的。这是一种幻觉还是第一个上有什么东西减慢了下载速度 我还注意到,第一个似乎阻止了其他请求。例如,如果我从第一台服务器请求一个文件,那么在下载完成之前,一台服务器不会响应我的另一个请求。即使我要求不同的页面。如果我从不同的浏览

我有两个不同的类,我正在测试发送文件到浏览器。 第一个是at使用特定于范围的头,以便提供恢复

第二个是at使用块读取发送大文件。
两者都适用于一种不同的情况。就下载速度而言,第一个比第二个慢很多。第一个我不能超过80KB/s,第二个我可以尽可能快

我做了一些测试,结果是一样的。这是一种幻觉还是第一个上有什么东西减慢了下载速度

我还注意到,第一个似乎阻止了其他请求。例如,如果我从第一台服务器请求一个文件,那么在下载完成之前,一台服务器不会响应我的另一个请求。即使我要求不同的页面。如果我从不同的浏览器打开不同的会话,它不会这样做


谢谢。

终于!我通过在下载页面中添加EnableSessionState=“ReadOnly”成功地解决了这个问题

“如果可以,请使用ReadOnly属性

对于只需要读取会话数据的页面,请考虑将EnabLeSeSession状态设置为只读。< /P> 为什么

内部使用会话状态的页面请求使用ReaderWriterLock对象来管理会话数据。这允许在没有锁的情况下同时进行多个读取。当写入程序获取锁以更新会话状态时,所有读取请求都会被阻止。通常每个请求对数据库进行两次调用。第一次调用l连接到数据库,将会话标记为已锁定,然后执行页面。第二个调用写入任何更改并解锁会话。通过将EnableSessionState设置为ReadOnly,可以避免阻塞,并减少对数据库的调用,从而提高性能。

终于!我通过在下载页面中添加EnableSessionState=“ReadOnly”成功地解决了这个问题

“如果可以,请使用ReadOnly属性

对于只需要读取会话数据的页面,请考虑将EnabLeSeSession状态设置为只读。< /P> 为什么

内部使用会话状态的页面请求使用ReaderWriterLock对象来管理会话数据。这允许在没有锁的情况下同时进行多个读取。当写入程序获取锁以更新会话状态时,所有读取请求都会被阻止。通常每个请求对数据库进行两次调用。第一次调用l连接到数据库,将会话标记为已锁定,然后执行页面。第二个调用写入任何更改并解锁会话。通过将EnableSessionState设置为ReadOnly,可以避免阻塞,并减少对数据库的调用,从而提高性能。 "