WCF's default Message Exchange Pattern is Request/Response. Every operation call expects a response from the service, even if it's just an empty acknowledgment. To implement fire-and-forget messaging without waiting for a response, the operation must be explicitly marked with [OperationContract(IsOneWay=true)].