试图下载文件的100个并发用户(asp.net C#应用程序)
发布时间:2020-12-16 09:37:45 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试在asp.net应用程序中实现文件下载功能.该应用程序将同时用于约200个用户下载各种文件. 它将托管在IIS 7上.我不希望应用程序服务器崩溃,因为多个请求同时发生. 我假设通过在一个循环中调用Context.Response.Flush(),我正在清除我将要阅读的所有文件
我正在尝试在asp.net应用程序中实现文件下载功能.该应用程序将同时用于约200个用户下载各种文件.
它将托管在IIS 7上.我不希望应用程序服务器崩溃,因为多个请求同时发生. 我假设通过在一个循环中调用Context.Response.Flush(),我正在清除我将要阅读的所有文件数据,因此应用程序内存使用将保持一致.我可以对当前代码进行哪些其他优化,或者在这样的场景中应该使用哪种其他方法? 请求将用于各种文件,文件大小可以是100 KB到10 MB之间的任何值. 我目前的代码是这样的: FileStream inStr = null; byte[] buffer = new byte[1024]; String fileName = @"C:DwnldTesttest.doc"; long byteCount; inStr = File.OpenRead(fileName); Response.AddHeader("content-disposition","attachment;filename=test.doc"); while ((byteCount = inStr.Read(buffer,buffer.Length)) > 0) { if (Context.Response.IsClientConnected) { Context.Response.ContentType = "application/msword"; //Context.Response.BufferOutput = true; Context.Response.OutputStream.Write(buffer,buffer.Length); Context.Response.Flush(); } } 解决方法
您可以使用Response.TransmitFile在发送文件时保存服务器内存.
Response.ContentType = "application/pdf"; Response.AddHeader("content-disposition","attachment; filename=testdoc.pdf"); Response.TransmitFile(@"e:inetwwwdocstestdoc.pdf"); Response.End(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp经典 – 经典ASP文本替换和UTF-8编码
- asp.net-mvc – ASP.NET MVC – 从另一个项目引用主/布局页
- 我们可以通过.net native编译asp.net 5应用程序吗?
- asp.net-mvc – 远程验证OnBlur和空字符串
- asp.net – 根据查询字符串显示完全不同的输出
- asp.net-mvc-2 – Mono MVC 2主路由不起作用
- .net – 将MVC应用程序作为独立应用程序运行
- Asp.Net MVC5 – Html.Action – 属性路由 – 导致异常的奇
- asp.net – 如何添加两个CSS类来控制代码背后?
- asp.net-mvc – ASP.NET MVC在调用方法时查找调用方法!Mod
推荐文章
站长推荐
- 谈谈你最熟悉的System.DateTime[下篇]
- asp.net-mvc – asp.net mvc局部视图错误输出
- asp.net – Orchard CMS如何进行日志记录?
- asp.net – 您在哪里存储数据库连接字符串?
- asp.net-mvc – Mvc区域路由?
- asp.net-mvc – MVC ModelMetaData属性和格式化D
- 一步一步创建ASP.NET MVC5程序[Repository+Autof
- asp.net – 可以从Web API访问HttpContext.Curre
- asp.net – 在Visual Studio中禁用浏览器链接选项
- asp.net-mvc – 升级到Visual Studio 2015会使in
热点阅读