내 ASP.NET 응용 프로그램을 사용하면 대용량 파일을 업로드하고 다운로드 할 수 있습니다. 두 절차 모두 파일 스트림 읽기 및 쓰기 작업을 포함합니다. 대용량 파일을 처리 할 때 응용 프로그램이 멈추지 않거나 충돌하지 않도록하려면 어떻게해야합니까? 예를 들어 파일 작업을 작업자 스레드에서 처리해야합니까?ASP.NET에서 대용량 파일 전송을 처리 할 때 어떤 예방 조치를 취해야합니까?
1
A
답변
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가 충분히 request length (IIS7) 및 초과 대형을하도록 설정되어 있는지 확인하십시오.
0
사이트의 주된 목적이 아닌 한 이러한 작업을 별도의 애플리케이션 (예 : 하위 애플리케이션 또는 하위 도메인 위험을 줄이는 것 외에도 사용자 기반이 커짐에 따라 확장이 간단 해집니다.