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