WCF를 사용한 파일 전송과 관련하여 많은 질문이 있습니다. "청크"모드에서 larges 파일을 포함하여 모든 것을 처리했습니다. 전송 당사자 (업로드를 시작하는 사람)로부터 파일 업로드를 취소 할 수있는 옵션과 전송이 수락되고 취소 될 때이를 알리는 콜백 인터페이스가 있습니다.취소 지원이 포함 된 WCF 파일 전송
내 문제는 수신 측에서 업로드를 취소하는 것입니다. 채널을 강제로 닫을 수는 있지만 보내는 사람에게 취소 사실을 알리고 싶습니다. 해결 방법이 없습니다. 어떤 도움이 필요합니까?
감사
업데이트 :
은 이미 그것을 알아 냈다. 아래의 설명을 참조하십시오. 서비스의 인터페이스는 다음과 같습니다 : 그런데
, 서비스 인터페이스는 다음과 같습니다
[ServiceContract(SessionMode = SessionMode.Required,
CallbackContract = typeof(IFileTransferServiceCallback))]
public interface IFileTransferService
{
[OperationContract(IsOneWay = true)]
void RequestSendFile(FileTransferInvitation request);
[OperationContract(IsOneWay=true)]
void SendData(string id, byte[] data, int length);
[OperationContract(IsOneWay = true)]
void SendCancel(string id);
[OperationContract(IsOneWay = true)]
void SendEnd(string id);
[OperationContract(IsOneWay = true)]
void RequestSendCancelConfirmed(string id);
}
public interface IFileTransferServiceCallback
{
[OperationContract(IsOneWay = true)]
void SendStarted(FileTransferInvitation transfer);
[OperationContract(IsOneWay = true)]
void RequestSendCancel(string id);
[OperationContract(IsOneWay = true)]
void SendCompleted(string id, Exception error);
}
일단 업로드가 시작되면 업로드를 취소하도록 서비스에 지시하는 작동 구현이 이미 있습니까? 또는 구현을 추가하려고하십니까? –
예, 이미 클라이언트 측에서만 취소 옵션을 추가합니다. 내가 갖고 있지 않은 것은 서버 측에서 취소 할 수있는 옵션이었습니다. 하지만 이미 알아 냈어. 콜백 인터페이스에 서버의 취소 양식을 요청하는 메소드를 추가했습니다. 클라이언트 측에서 데이터 전송을 중단하고 서버에 취소를 확인한 다음 채널을 닫습니다. 잘 작동합니다. –
나중에 보러 오는 사람들이 어떻게 문제를 해결했는지 볼 수 있도록 답장에 주석을 만드십시오. :) –