A Windows Communication Foundation (WCF) client and service share the following service contract interface:
[ServiceContract]
public interface IContosoService
{
[OperationContract]
void SavePerson(Person person);
}
They also use the following binding:
NetTcpBinding binding = new NetTcpBinding() { TransactionFlow = true };
The client calls the service with the following code:
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
IContosoService client = factory.CreateChannel();
client.SavePerson(person);
Console.WriteLine(Transaction.Current.TransactionInformation.DistributedIdentifier);
ts.Complete();
}
The service has the following implementation for SavePerson:
public void IContosoService.SavePerson(Person person)
{
person.Save();
Console.WriteLine(Transaction.Current.TransactionInformation.DistributedIdentifier);
}
The distributed identifiers do not match on the client and the server.
You need to ensure that the client and server enlist in the same distributed transaction. What should you do?
A.
Add the following attributes to the SavePerson operation on IContosoService.
[OperationBehavior(TransactionScope.Required = true)]
[TransactionFlow(TransactionFlowOption.Mandatory)]
B.
Add the following attributes to the SavePerson operation on lContosoService
[TransactionFlow(TransactionFlowOption.Mandatory)]
[OperationBehavior(TransactionScope.Required = true)]
C.
Add the following attribute to the SavePerson operation on lContosoService
[OperationBehavior(TransactionScope.Required = true)]
Add the following attribute to the implementation of SavePerson.
[TransactionFlow(TransactionFlowOption.Allowed)]
D.
Add the following attribute to the SavePerson operation on lContosoService
[TransactionFlow(TransactionFlowOption.Allowed)]
Add the following attribute to the implementation of SavePerson.
[OperationBehavior(TransactionScope.Required = true)]
Answers A and B are identical, as far as C# is concerned.
The property is :
bool TransactionScopeRequired in OperationBehaviorAttribute not
TransactionScope.Required
extra “.”
D