Kenny Wolf has a very good post on which he describes the reasons for setting the IsOneWay property of your OperationContract attribute to true.
If your operation has void return type, mark it with IsOneWay so …
The service will release the connection (or complete the HTTP request/response by replying with null, etc) before dispatching to user code. If the operation is not marked with IsOneWay then our Dispatcher won’t reply until the Operation has completed
An important thing to know if you’re want to your application to perform well by using the old “fire and forget” idiom.