The OneWay Operation in WCF

[OperationContract]
void SendMessage(string message);

and:
[OperationContract(IsOneWay=true)]
void SendMessage(string message);

The first difference is semantics — even though you have a void method,
if you don’t mark the Operation with IsOneWay then we will wait for an ACK/NACK reply.

There are a few other behavioral changes when you choose IsOneWay:

The service will release the connection before dispatching to user code. If the operation is not marked with IsOneWay then our Dispatcher won’t reply until the Operation has completed

ServiceModel Runtime will ask for IOutputChannel first, before falling back to IRequestChannel or IDuplexSessionChannel if IOutputChannel isn’t available. This allows the underlying stack to make optimizations on send/receive.

Service Model Faults will not be returned, so Exceptions caused by the Message-level processing are not propagated to the client