편집 : 디버그 모드에서 클라이언트 솔루션을 사용할 때 모든 것이 의도 한대로 작동합니다. 이 서비스가 포함 된 솔루션은 디버그 모드에서 제대로 작동합니다. 내가 서버에 사용자가 업로드 한 .zip 파일을 저장하는 파일 업 로더에 일하고 있어요다중 스레드 클라이언트 메서드를 실행하기 전에 WCF 서비스가 완료 될 때까지 대기
후 비동기 거기에서 서로 다른 위치의 무리에 복사합니다 (웹 서비스 사용), 그리고, 그것을 압축을 풀고 업로드 된 .zip 파일과 압축 해제 된 파일을 삭제합니다.
그래서 :
1) 업로드 파일
2))을 QueueUserWorkItem (methodName로를 사용하여 압축을 풀고는 "감사합니다"페이지
3) methodName로 (로 사용자를 리디렉션)은 압축을 푼 폴더를 다른 위치로 복사하는 몇 가지 WCF 웹 서비스 호출을합니다. 서비스 호출이 완료되면
string copyToPaths = UploaderService.StartFolderUpload(_fileCategoryName, topDir);
UploaderService.CompleteFolderUpload(copyToPaths);
4) 오래된 파일을 삭제하고 파일을 (더 이상
그래서 내 문제는 WCF 서비스를 호출하는 방법은 대기하지 않는다는 것입니다 여기문제) 필요하지 않습니다 완료되기 전의 서비스 호출을 완료하고 파일을 삭제합니다. 업로드 된 파일을 삭제하면 웹 서비스는 해당 파일을 다른 위치로 복사 할 수 없습니다.
QueueUserWorkItem과 함께 호출 된 메서드를 웹 서비스 호출이 끝날 때까지 기다렸다가 실행을 계속할 수 있습니까?
문제와 관련이있는 질문 제목을 업데이트해야합니다. 귀하의 태그를 사용하여 어떤 기술 등을 사용하여 – James
귀하의 게시물은 파일 삭제가'QueueUserWorkItem (MethodName)'아래 행에서 이루어 졌다고 제안합니다. 'QueueUserWorkItem'이 즉시 반환하기 때문에 작동하지 않습니다. 그들은 MethodName의 끝에 있어야합니다. –
아니요 - 삭제는 QueueUserWorkItem (MethodName) 호출 이후가 아니라 MethodName() 메서드 끝에서 수행됩니다. – Buchannon