ASP.NET-客户端的流文件是否占用服务器内存?

ASP.NET-客户端的流文件是否占用服务器内存?,asp.net,download,filestream,fileserver,tfilestream,Asp.net,Download,Filestream,Fileserver,Tfilestream,我需要使文件服务器中的文件可以通过运行在web服务器上的应用程序下载。用户将单击应用程序页面上的可用链接,并显示另存为对话框。这种用例非常常见,我可能在谈论一件基本的事情,但如果有人能确认我的以下假设是否正确,我将不胜感激 1) 如果文件服务器上的文件通过web服务器中的虚拟目录虚拟映射,应用程序可以访问这些文件(作为链接),则可以使用内容配置(代码与答案类似)将其直接流式传输到客户端,这意味着不涉及任何代码来处理或分块文件以流式传输 2) 由于文件直接从文件服务器流式传输,因此web服务器在内

我需要使文件服务器中的文件可以通过运行在web服务器上的应用程序下载。用户将单击应用程序页面上的可用链接,并显示另存为对话框。这种用例非常常见,我可能在谈论一件基本的事情,但如果有人能确认我的以下假设是否正确,我将不胜感激

1) 如果文件服务器上的文件通过web服务器中的虚拟目录虚拟映射,应用程序可以访问这些文件(作为链接),则可以使用内容配置(代码与答案类似)将其直接流式传输到客户端,这意味着不涉及任何代码来处理或分块文件以流式传输

2) 由于文件直接从文件服务器流式传输,因此web服务器在内存或磁盘使用方面不会受到任何影响(当然会使用CPU)


谢谢

< p>因为你要直接写文件,并将内存占用保持在最小值,考虑使用

将指定的文件直接写入HTTP响应输出流, 没有在内存中缓冲它

据我所知,如果必须通过asp.net编写文件,这是在响应中发送文件的最有效方法

Response.AppendHeader("Content-Disposition", "attachment; filename="+ fileName );
Response.TransmitFile(fullPath);
Response.Flush();
Response.End();

这取决于如何流式传输数据。该答案中显示的方法将在文件传输时影响内存,因为所有字节都在内存中读取。显示您正在使用的代码会有所帮助。我还没有编写任何代码,但打算使用我在共享的链接中显示的类似模式。实际上,我正在寻找一种方法,在从文件服务器下载文件时,不会干扰web服务器上的内存和磁盘使用。您确定代码会占用“web服务器”内存吗?这让我感到惊讶。我的理解是,由于它直接从文件服务器流式传输,它可能不会占用内存或困扰web服务器的磁盘。感谢并感谢您的回答。实际上,我共享的链接使用本地“web服务器”中的文件,但在我的例子中,我打算指向一个虚拟目录,该目录反过来指向一个文件服务器。在这种情况下,文件服务器磁盘使用率可能会上升(可能不是内存),但web服务器磁盘或内存不会受到影响,对吗?谢谢这正是我想做的。谢谢Nunesspascal!