使用WCF根据行业标准实施服务?

时间:2010-03-01 18:12:37

标签: c# .net wcf web-services messaging

我正在寻找一个适当的框架来实现.NET中的(Web)服务层。我对WCF有点熟悉并且想知道它是否可以按照我想要的方式进行定制。

1)系统发送/接收的消息有一个行业标准,它定义了操作,使用的类型等。它是基于XML的。它要求所有请求/响应都包含在一个信封中,例如:

<xxx:Message>
  <xxx:Header>
    //some header data
  </xxx:Header>
  <xxx:Body>
    <xxx:Command>
      //request data
    </xxx:Command>
    <xxx:Command>
      //request data
    </xxx:Command>
  <xxx:Body>
</xxx:Message> 

xxx:Command元素实际上标识要执行的操作和参数,或包含命令执行结果 WCF将所有内容包装到SOAP信封中。是否可以自定义使用上面示例中的信封发送所有请求,而不是SOAP?我应该如何编码我的服务,以便正确解析所有传出和传入的消息。我应该查看[MessageContract][DataContract]属性还是两者兼有?

2)单向操作。行业标准规定服务应响应“确认”消息,即已收到请求。我正在研究实现类似方法的单向操作 - 一旦服务器收到消息,它们就会通知客户端。我想知道,我如何定制发送的“确认”消息以符合行业标准。

如果WCF不允许,你可以转发给我任何其他可能的解决方案 - 远程处理,也许还有其他一些网络服务库?

1 个答案:

答案 0 :(得分:1)

1)这两个属性都没有帮助你。这些属性由绑定(例如,WS-HttpBinding)解释,以确定如何实际创建消息。您将不得不编写自定义绑定来执行此操作,并且可能需要自定义序列化程序,具体取决于“请求数据”字段的结构。

2)同样,你需要编写一个自定义绑定。

快速搜索未显示任何现有的WCF GSA S2S绑定实现。

S2S现有引擎(例如S2SConnect)。许可成本可能或可能不值得花费时间来开发自己的实施。