아마도 간단한 해결책에 대한 긴 질문 일지 모르겠지만 여기에 ...HTTP 처리기가 처리를 완료하면 클라이언트 측에서 어떻게 알 수 있습니까?
나는 여러 파일을 선택하고 서버로 보내는 맞춤형 실버 라이트 컨트롤이 있습니다. WebCLient 컨트롤의 OpenWriteAsync 메서드를 사용하여 파일을 일반 처리기 (FileReciever.ashx)로 보냅니다.
기본적 실버 코드는 각 파일에 대해 같은 것을 수행 :
는WebClient client = new WebClient();
client.OpenWriteCompleted += (sender, e) =>
{
PushData(data, e.Result);
e.Result.Close();
data.Close();
};
client.OpenWriteAsync(handlerUri);
서버 측 핸들러는 단순히 입력 스트림을 판독하고, 그 결과 바이트 어레이 좀 더 처리한다.
문제는 클라이언트 측 OpenWriteCompleted가 모든 데이터가 회선을 통해 전송되는 즉시 완료된다는 것입니다. 그러면 내 코드가 다음 파일과 연결됩니다. 내가 정말로 원하는 것은 ASHX 핸들러가 그 요청을 처리하는 동안 모두 기다릴 때까지 기다리는 것이다. 어떻게해야합니까? WebClient의 대기 메커니즘은 무엇입니까? 핸들러의 HttpContext에서 수행 할 수있는 콜백은 무엇입니까? 다른 종류의 전송 기술을 사용해야합니까? 제발 조언!
그런 식으로 작동 할 것입니다.하지만 다른 방법이 있기를 바랍니다. 뭔가가 내장되어 있고, 이와 같은 별도의 서비스는 필요하지 않습니다. –