1
關於使用WCF進行文件傳輸有很多問題。 我已經得到了一切工作,包括「分塊」模式下的大文件。 我可以選擇從發送方(開始上傳的那個)取消文件上傳,並有一個回調接口來通知傳輸何時被接受和取消。帶取消支持的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);
}
因此,一旦上傳開始,你已經有一個工作實現,會告訴服務取消上傳?或者你正在尋找添加該實現? – 2010-02-12 15:47:16
是的,我已經添加了取消選項,但只在客戶端。我沒有的是從服務器端取消選項。 但是沒關係,我已經弄明白了: 我在回調接口上添加了一個方法來請求服務器取消。在客戶端,我停止發送數據,確認取消服務器並關閉通道。 它的工作很好。 – 2010-02-12 17:52:29
將該評論寫入答案,以便以後再來看的人會看到你是如何解決問題的。 :) – 2010-02-12 18:23:41