多项选择题

A Windows Communication Foundation (WCF) solution uses the following contracts. (Line numbers are included for reference only.)
01 [ServiceContract(CallbackContract=typeof(INameService))]
02 public interface IGreetingService
03 {
04 [OperationContract]
05 string GetMessage();
06 }
07 [ServiceContract]
08 public interface INameService
09 {
10 [OperationContract]
11 string GetName();
12 }
The code that implements the IGreetingService interface is as follows:
20 public class GreetingService : IGreetingService
21{
22 public string GetMessage()
23 {
24 INameService clientChannel = OperationContext.Current.GetCallbackChannel();
25 string clientName = clientChannel.GetName();
26 return String.Format("Hello {0}", clientName);
27 }
28 }
The service is self-hosted. The hosting code is as follows:
30 ServiceHost host = new ServiceHost(typeof(GreetingService));
31 NetTcpBinding binding = new NetTcpBinding(SecurityMode.None);
32 host.AddServiceEndpoint("MyApplication.IGreetingService", binding, "net.tcp//localhost:12345");
33 host.Open();
The code that implements the lNameService interface is as follows:
40 class NameService : INameService
41 {
42 string name;
43 public NameService(string name)
44 {
45 this.name = name;
46 }
47 public string GetName()
48 {
49 return name;
50 }
51 }
Currently, this code fails at runtime, and an InvalidOperationException is thrown at line 25. You need to correct the code so that the call from the service back to the client completes successfully. What are two possible ways to achieve this goal? (Each correct answer presents a complete solution. Choose two.)()

A.
B.
C.
D.

相关考题

多项选择题 A WCF service code is implemented as follows. (Line numbers are included for reference only) 01 [ServiceContract] 02 [ServiceBehavior(InstanceContextMode = 03 InstanceContextMode.Single)] 04 public class CalculatorService 05 { 06 [OperationContract] 07 public double Calculate(double op1, string op, double op2) 08 { 09 } 10 } You need to increase the rate by which clients get the required response from the service. What are two possble ways to achieve this goal? (Each correct answer presents a complete solution. Choose two.)()

单项选择题 A service implements the following contract. (Line numbers are included for reference only) 01 [ServiceContract(SessionMode = SessionMode.Required)] 02 public interface IContosoService 03 { 04 [OperationContract(IsOneWay = true, IsInitiating = true)] 05 void OperationOne(string value); 06 07 [OperationContract(IsOneWay = true, IsInitiating = false)] 08 void OperationTwo(string value); 09 }The service is implemented as follows: 10 class ContosoService: IContosoService 11 { 12 public void OperationOne(string value) {...} 13 ... 14 public void OperationTwo(string value) {...} 15 } ContosoService uses NetMsmqBinding to listen for messages. The queue was set up to use transactions for adding and removing messages.You need to ensure that OperationOne and OperationTwo execute under the same transaction context when they are invoked in the same session.What should you do?()

单项选择题 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?()