Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf 从webservice将消息推送到biztalk业务流程_Wcf_Biztalk - Fatal编程技术网

Wcf 从webservice将消息推送到biztalk业务流程

Wcf 从webservice将消息推送到biztalk业务流程,wcf,biztalk,Wcf,Biztalk,我创建了一个BizTalk业务流程,该业务流程向wcf Web服务发送消息,Web服务在sharepoint上创建任务,并且业务流程在字符串成功时接收响应。 现在,我还在sharepoint中创建了一个eventhandler,当有人更改任务以完成某些可以执行的代码时。 我希望在某人完成任务时能够向biztalk业务流程发送消息。我该怎么做 我可以从sharepoint调用webservice,但如何将消息推送到biztalk编排? 如果在业务流程中使用wcf服务,则会创建一个发送-接收端口,但

我创建了一个BizTalk业务流程,该业务流程向wcf Web服务发送消息,Web服务在sharepoint上创建任务,并且业务流程在字符串成功时接收响应。 现在,我还在sharepoint中创建了一个eventhandler,当有人更改任务以完成某些可以执行的代码时。 我希望在某人完成任务时能够向biztalk业务流程发送消息。我该怎么做

我可以从sharepoint调用webservice,但如何将消息推送到biztalk编排? 如果在业务流程中使用wcf服务,则会创建一个发送-接收端口,但我只希望从webservice接收消息。 因此,Web服务必须将消息推送到编排


谢谢

您尝试使用的web服务是什么样子的?它是否有返回值?您可以像在另一种情况下一样返回成功。

您尝试使用的web服务是什么样子的?它是否有返回值?您可以像在另一种情况下一样返回成功。

如果我理解正确,您可以使用WCF服务将任务发送到SharePoint您可以使用BizTalk SharePoint适配器直接执行此操作-我曾经使用过它,但我认为这是它可以做的事情。当任务标记为完成时,SharePoint中的事件处理程序将激发,然后将消息发送回BizTalk

要将消息返回BizTalk,需要创建WCF接收位置。此接收位置可以是单向或双向。这两个端口实际上都是双向接收端口。该端口通过WCF接收来自SharePoint的消息,然后向SharePoint发送回复以确认接收。如果BizTalk只发送回ACK,则将其视为单向接收端口。如果它将ACK与消息一起发回,则认为它是一个双向接收端口

简而言之,您需要在业务流程中设置第二个接收端口。将其发布为WCF web服务。您还需要设置相关性,以便消息可以找到返回正确业务流程实例的路径。下面是一篇关于相关性的好博文:


成功关联的关键是在每条消息中都有一个提升的属性,可用于将它们重新绑定到一起。因此,您发送到SharePoint的任务应该具有唯一的TaskID或其他内容。来自SharePoint的响应应该在repsonse中具有相同的提升属性。

如果我理解正确,您可以使用WCF服务将任务发送到SharePoint您可以使用BizTalk SharePoint适配器直接执行此操作-我曾经使用过它,但我认为它可以做到这一点。当任务标记为完成时,SharePoint中的事件处理程序将激发,然后将消息发送回BizTalk

要将消息返回BizTalk,需要创建WCF接收位置。此接收位置可以是单向或双向。这两个端口实际上都是双向接收端口。该端口通过WCF接收来自SharePoint的消息,然后向SharePoint发送回复以确认接收。如果BizTalk只发送回ACK,则将其视为单向接收端口。如果它将ACK与消息一起发回,则认为它是一个双向接收端口

简而言之,您需要在业务流程中设置第二个接收端口。将其发布为WCF web服务。您还需要设置相关性,以便消息可以找到返回正确业务流程实例的路径。下面是一篇关于相关性的好博文:


成功关联的关键是在每条消息中都有一个提升的属性,可用于将它们重新绑定到一起。因此,您发送到SharePoint的任务应该具有唯一的TaskID或其他内容。来自SharePoint的响应应该在repsonse中具有相同的提升属性。

仅添加到Chris的post+1中-BizTalk在如何将SharePoint中工作流的成功或失败返回到编排方面非常灵活-您可以使用任何方法,从使用文件适配器在目录中写入文件,通过电子邮件将其发送到SMTP接收端口,在数据库中写入记录并使用SQL适配器从BizTalk进行轮询

要将业务流程或其中的接收端口作为WCF服务公开,最简单的方法是使用Visual Studio中的WCF发布向导工具| WCF发布向导。
这将指导您在BizTalk中创建端口,并在IIS下发布web服务和Mex/WSDL。从此,您将能够从Sharepoint应用程序添加Web/服务引用。一个问题是确保IIS下的应用程序正在运行。请注意,也可以让BizTalk直接承载WCF,但这有点复杂。

仅添加到Chris的post+1中,BizTalk在如何从服务器返回成功或失败方面非常灵活 Sharepoint中的工作流返回业务流程-您可以使用任何操作,从使用文件适配器在目录中写入文件,到通过电子邮件将其发送到SMTP接收端口,再到在数据库中写入记录,以及使用SQL适配器从BizTalk进行轮询

要将业务流程或其中的接收端口作为WCF服务公开,最简单的方法是使用Visual Studio中的WCF发布向导工具| WCF发布向导。
这将指导您在BizTalk中创建端口,并在IIS下发布web服务和Mex/WSDL。从此,您将能够从Sharepoint应用程序添加Web/服务引用。一个问题是确保IIS下的应用程序正在运行。请注意,也可以让BizTalk直接承载WCF,但这有点复杂。

Web服务现在只发送一个字符串,我想做的是,当有东西调用Web服务时,不是从BizTalk而是从sharepoint,我想向BizTalk编排发送一条消息,例如:一个带有任务标题的字符串。因此,我认为我不能简单地使用biztalk中的wcf服务,因为该服务不需要输入,它只向用户发送消息biztalk@RiseAgainst-是的,您是对的,您需要从BizTalk发布和公开WCF服务。要做到这一点,最简单的方法是通过WCF发布向导,但这也需要IIS。目前,webservice只发送一个字符串,我要做的是,当有东西调用webservice时,不是从biztalk而是从sharepoint调用webservice,我要向biztalk编排发送一条消息,例如:带有任务标题的字符串。因此,我认为我不能简单地使用biztalk中的wcf服务,因为该服务不需要输入,它只向用户发送消息biztalk@RiseAgainst-是的,您是对的,您需要从BizTalk发布和公开WCF服务。要做到这一点,最简单的方法是通过WCF发布向导,但这也需要IISI已创建WCF自定义类型的发送端口,并已将地址、绑定设置为customBinding,并已修改端口的身份验证模式和凭据。我已启用该端口,如果我浏览到url,则会看到一条消息:此服务的元数据发布当前已禁用。我如何解决这个问题,如何从我的Web服务到达端口?无论如何,我通过配置元数据发布来解决它。现在如何从项目中调用此端口?我向receiveport Web服务添加了一个服务引用,并创建了它的一个新实例。现在我看到BizTalkSubmit有一个方法,但我需要用这个方法给出一个Channels.Message。如何创建此消息?Channels.message将表示BizTalk在业务流程上的接收中预期的消息架构-在服务引用上创建的代理实体应为架构的每个元素键入字段。根据Chris的帖子,您需要使用一些标识/延续数据将调用关联回业务流程。我创建了一个WCF自定义类型的发送端口,并将地址、绑定集填入customBinding,并修改了端口的身份验证模式和凭据。我已启用该端口,如果我浏览到url,则会看到一条消息:此服务的元数据发布当前已禁用。我如何解决这个问题,如何从我的Web服务到达端口?无论如何,我通过配置元数据发布来解决它。现在如何从项目中调用此端口?我向receiveport Web服务添加了一个服务引用,并创建了它的一个新实例。现在我看到BizTalkSubmit有一个方法,但我需要用这个方法给出一个Channels.Message。如何创建此消息?Channels.message将表示BizTalk在业务流程上的接收中预期的消息架构-在服务引用上创建的代理实体应为架构的每个元素键入字段。根据Chris的帖子,您需要使用一些标识/延续数据将调用关联回编排。