Wenn ich Streaming mit WCF mache, erstelle ich zwei ServiceContracts, von denen einer das Streaming durchführt, das die Benachrichtigung am Ende des Streams sendet.
Die Antwort ServiceContract Ich verwende eine Duplex-Art Bindung. Der Client, der zuerst die Antwort ServiceContract aufruft, um ein Ticket für seine Transaktion zu erhalten, ruft dann meine Überweisung ServiceContract an. Am Ende der Transaktion wird der Client über den Erfolg oder Misserfolg von der Antwort ServiceContract benachrichtigt.
[ServiceContract]
public interface IStreamFileService
{
[OperationContract]
void Upload(Stream stream);
}
[ServiceContract(SessionMode = SessionMode.Required, CallbackContract = typeof(ITransferCallback))]
public interface IStreamFileResponseService
{
[OperationContract(IsOneWay = false, IsInitiating = true, IsTerminating = false)]
Guid StartUpload();
}
[ServiceContract]
public interface ITransferCallback
{
[OperationContract]
void OperationComplete(ResponseMessage response);
}
Ich tue dies in zwei Dienste, weil meine Anforderungen und Workflow mir erfordert viele Dinge zu verfolgen und tun Authentifizierung, Validierung etc.