WCF消息交换模式之请求-响应模式

Posted bibi-feiniaoyuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WCF消息交换模式之请求-响应模式相关的知识,希望对你有一定的参考价值。

WCF的消息交换模式(MEP)有三种:请求/响应、单向模式和双工模式。WCF的默认MEP是请求/响应模式。

请求/响应模式操作签名代码如下,无需指定模式,默认就是。

[OperationContractAttribute]  
string Hello(string greeting,string mesg);

[OperationContractAttribute]  
void SaveMesg(string mesg);

请求/响应模式内容:

  1. 客户端可以传递一个或多个参数给服务操作方法,服务操作方法会把返回值传回给相应的客户端调用者。
  2. 客户端会收到服务操作的返回值,即使服务操作返回的是void,客户端仍回收到空消息。
  3. 客户端如果是异步调用服务,则无需等待收到返回值就可继续往下执行其他代码,如果同步则需等待返回值。
  4. 如果服务端操作执行报错,客户端可以收到返回的错误信息。

参考网址:https://docs.microsoft.com/en-us/dotnet/framework/wcf/designing-service-contracts

服务操作返回SOAP错误信息内容:

可以在服务操作签名指定返回的错误对象为FaultException <TDetail>,该异常对象会转换为FaultContractAttribute指定的SOAP错误

 接口:
 [OperationContract]
 [FaultContractAttribute(typeof(GreetingFault))]
 string SampleMethod(string msg);
 实现:
 public string  SampleMethod(string msg)
 {
  throw new FaultException<GreetingFault>(new GreetingFault("A Greeting error    occurred. You said: " + msg));
 }

参考网址:https://docs.microsoft.com/en-us/dotnet/api/system.servicemodel.faultexception-1?view=netframework-4.8

以上是关于WCF消息交换模式之请求-响应模式的主要内容,如果未能解决你的问题,请参考以下文章

请求-响应与双工 WCF 消息交换模式

“一切都是消息”--MSF(消息服务框架)之请求-响应模式

wcf中的消息模式

C# WCF的通信模式

WCF的三种模式

架构之路之WCF全析--服务协定及消息模式