2011-12-08 2 views
0

ASP.Net 웹 사이트를 만들고 웹 사이트에서 PDF를 입력 받아 처리합니다. 특정 이름의 중간 파일을 생성 중입니다. 하지만 여러 사용자가 동시에 같은 사이트를 사용하고 있는지를 알고 싶다면 서버가이를 어떻게 처리 할 것인가?웹 사이트에 동시에 여러 번 업로드

어떻게 처리 할 수 ​​있습니까? 멀티 스레딩이 효과가 있습니까? 생성중인 중간 파일의 파일 이름은 어떻게됩니까? 서로를 재정의하지 않도록 어떻게 할 수 있습니까? 실적 달성 방법

죄송합니다. 질문이 너무 기본적인 경우.

답변

0

.NET에 있지는 않지만 어쨌든 일반적인 문제인 것처럼 들리므로 내 두 센트입니다.

당신이 말했듯이, 멀티 스레드 (보통 다른 스레드에서 실행되는 다른 요청)는 모든 메서드 호출이 새로운 개체가 별도의 컨텍스트에서 실행되는 것과 관련하여 이러한 종류의 문제 대부분을 처리합니다.

그래도 예외는 있습니다. - 작업에 부작용이있는 싱글 톤 (전역) 객체 - 기타 리소스 (파일 등).

그래서 파일의 경우는 이러한 (상호 배타적) 대안을 숙고 것 :

(1) 대신에, 디스크에 업로드 된 파일을 쓸 메모리를 잡고처럼 (거기에 그것을 처리하지 마십시오 바이트 배열). 이 경우 요청 당 스레드 보호 기능을 활용합니다. 이 파일은 파일이 너무 큰 경우 적용 할 수 없습니다.

(2) 두 명의 사용자가 동시에 업로드하는 경우 이름이 충돌하지 않도록 임시 위치에 쓰기 위해 매우 임의의 이름 (예 : UUID)을 선택하십시오.

가능한 한 언제든지 (1) 함께 가고 싶습니다.

최고

관련 문제