1

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

4

2 回答 2

1

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

例如,从下载应用程序中摘录,在读取文件的 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 字节,则权衡是对于较小的缓冲区大小会更慢。

http://support.microsoft.com/kb/812406

编辑:还要确保 IIS 设置为采用足够大的请求长度(IIS7)和超时。

于 2008-11-09T16:48:14.307 回答
0

除非这是您网站的主要目的,否则请考虑将这些操作划分为单独的应用程序,例如子应用程序或子域。除了降低风险之外,这还将随着用户群的增长而简化扩展。

于 2008-11-09T16:54:37.630 回答