Beware:

Adding the following attribute to a member of the the underlying service class

[OperationBehavior(TransactionScopeRequired = true)]

when the class is marked with the the follow attribute:

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]

forces a new singleton to be created (ie. it makes it per call). This is due to the default behavior of the OperationBehaviorAttribute's ReleaseInstanceMode property is to recycle a service object according to the InstanceContextMode value

See here for a similar problem