我正在寻找一个合适的框架来在.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不允许这一点,你能把我转到任何其他可能的解决方案-远程,也许是一些其他的web服务库?
发布于 2010-03-06 14:25:34
1)这两个属性都帮不上忙。这些属性由绑定(例如WS-HttpBinding)解释,以确定如何实际创建消息。为此,您必须编写一个自定义绑定,还可能编写一个自定义序列化程序,具体取决于“请求数据”字段的结构。
2)同样,您将需要编写自定义绑定。
快速搜索没有显示任何现有的GSA S2S绑定实现。
现有的S2S引擎(例如S2SConnect)。由于必须开发自己的实现而节省的时间,许可成本可能值得也可能不值得。
https://stackoverflow.com/questions/2357975
复制相似问题