WF4 / WCF中的RESTful工作流服务端点
伙计们,我正在构建一个非常标准的工作流程,我希望通过WCF端点公开 - 我正在使用“WCF服务应用程序”项目模板,并且我有一个.xamlx服务。 这是一个非常简单的文档交换工作流程服务 - 我希望消费者将一个XML blob作为HTTP帖子的主体(带有包含认证令牌的HTTP头文件)。 作为回应,这些消费者将获得包含回复的XML块。 我在这里使用REST / POX的两个目标是基于文档/消息的交互本质,并且我希望在非.NET环境(特别是Silverlight和iPhone等有限环境)下轻松开发客户端。
我真的不知道如何使用现成的功能来实现这一点(除非我错过了某些东西)。 有人知道如何为WF4服务托管的工作流程创建RESTful(或甚至是REST-ish,我不挑剔)端点吗? 任何在这里正确方向的信息都会很棒。
没有开箱即可使用REST和WF的活动,Receice是纯粹的SOAP。
您可以构建自定义REST接收活动并将其用于您的工作流程。 根据你的需要,这将是很多工作中的一小部分。 简单的选择是使用标准REST WCF端点并将REST数据转换为SOAP,将rhe请求传递给工作流,并对结果消息进行相反处理。
CodePlex上还有一个未发布的内容来说明这一点,其中包括源代码。 另请参阅此SO答案,其中包含实现此目的的另一个想法。
如果您希望看到CodePlex活动发布,请对UserVoice请求进行最后投票。
使用REST传递服务
正如@Maurice所提到的,您也可以将WF服务视为后端服务,并将REST服务公开到WF服务。
这种方法有点笨拙,但其优点是它不使用任何未发布或非常复杂的东西。
如果后端服务与REST服务在同一台机器上运行(这可能是您要做的),则应该使用命名管道绑定公开WF服务。 这种绑定速度很快,但仅适用于主叫方和被叫方位于同一个框中的情况。
还有一个想法:当后端服务被调用时,REST传递服务被阻塞。 如果你的WF服务不是非常快,你可以通过使REST服务异步,从而在调用WF服务时不会阻塞线程池线程。
链接地址: http://www.djcxy.com/p/2813.html