Scenarios:
1. TransactionAutoComplete set to false requires SessionMode.Required.
[OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete=false)]
[TransactionFlow(TransactionFlowOption.Mandatory)]
public string UpdateStatus(string text)
{
count++;
return String.Format("{0}", count);
}
2. 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.
[OperationContract(IsTerminating=true)]
string UpdateStatus(string text);
[OperationContract(IsInitiating=false)]
string UpdateStatus(string text);