C# 在ASP.NET中处理大型文件传输时,应采取哪些预防措施?

C# 在ASP.NET中处理大型文件传输时,应采取哪些预防措施?,c#,asp.net,large-files,file-transfer,C#,Asp.net,Large Files,File Transfer,我的ASP.NET应用程序允许用户上载和下载大型文件。这两个过程都涉及读取和写入文件流。我应该怎么做才能确保应用程序在处理大文件时不会挂起或崩溃?例如,是否应该在工作线程上处理文件操作?确保正确缓冲文件,以免它们占用系统中过多的内存 e、 g.从下载应用程序中摘录,在读取文件的while循环中: // Read the data in buffer. length = iStream.Read(buffer, 0, bufferSize); // Write the data to the c

我的ASP.NET应用程序允许用户上载和下载大型文件。这两个过程都涉及读取和写入文件流。我应该怎么做才能确保应用程序在处理大文件时不会挂起或崩溃?例如,是否应该在工作线程上处理文件操作?

确保正确缓冲文件,以免它们占用系统中过多的内存

e、 g.从下载应用程序中摘录,在读取文件的while循环中:

// Read the data in buffer.
length = iStream.Read(buffer, 0, bufferSize);

// Write the data to the current output stream.
Response.OutputStream.Write(buffer, 0, length);
如果bufferSize是合理的,例如100000字节,则折衷是较小的缓冲区大小会使其速度变慢


编辑:还要确保IIS设置为足够大(IIS7)和超时。

确保正确缓冲文件,以便它们不会占用系统中过多的内存

e、 g.从下载应用程序中摘录,在读取文件的while循环中:

// Read the data in buffer.
length = iStream.Read(buffer, 0, bufferSize);

// Write the data to the current output stream.
Response.OutputStream.Write(buffer, 0, length);
如果bufferSize是合理的,例如100000字节,则折衷是较小的缓冲区大小会使其速度变慢


<>编辑:也要确保IIS被设置为足够大(IIS7)和超时。

< P>除非您的站点的主要目的是考虑将这些操作划分为单独的应用程序,例如子应用程序或子域名。除了降低风险,这也会简化用户基数的扩展。

< P>除非你的网站的主要目的是考虑将这些操作划分为单独的应用程序,例如子应用程序或子域名。除了降低风险,随着用户群的增长,这还可以简化扩展