The contract '{0}' is not self-consistent - it has one or more IsTerminating or non-IsInitiating operations, but it does ...

The contract '{0}' is not self-consistent -- it has one or more IsTerminating or non-IsInitiating operations, but it does not have the SessionMode property set to SessionMode.Required.  The IsInitiating and IsTerminating attributes can only be used in the context of a session.