在给定时间通过biztalk发送(推送)Soap WS消息

时间:2011-03-24 09:36:08

标签: c# wcf soap jobs biztalk

我想知道是否有人可以提供示例或某些教程的链接,这些教程将展示如何使用soap作为工作(在给定时间)通过biztalk发送消息。我在使用JMS的java环境中做到了这一点,但我是第一次在.net及其技术中这样做。

我需要做的就是分成几步。

  1. 创建WCF SOAP服务,该服务有一种方法可以通过BizTalk将数据集合从我们的系统发送到供应商系统。
  2. 在给定时间执行此操作 - 创建一个每天执行一次的作业(计时器)。什么是最好的方法?我应该自己编写这个工作,还是在服务器上使用一些Windows调度程序?
  3. 对于任何建议都很有意思。

    编辑:通信概念:app1-client(此处为时间作业) - >发送数据 - > biztalk-server(WS) - >发送数据 - > app2-服务器(WS)

2 个答案:

答案 0 :(得分:2)

通常,拥有数据的系统也拥有发送数据的调度是有意义的。例如,如果数据来自SQL Server,请使用SQL Server的内置调度功能(SQL作业)作为启动整个过程的触发器。然后,让SQL作业使用文件适配器将数据转储到由BizTalk接收位置监视的文件夹中的文件。 BizTalk很糟糕,一个发送端口订阅了从文件中提取的接收端口发来的消息,它使用WCF或SOAP适配器将数据发送到外部服务器上的Web服务。

如果你不想或不想那样做,我见过人们使用:

  • CodePlex上的预定任务适配器(引用@tomasr)
  • Windows计划任务(更难管理,尤其是在Windows Server 2008之前)
  • 第三方作业调度软件(特别是已经在使用中)

如果触发机制无法访问需要通过BizTalk流动的数据,BizTalk肯定可以在将数据发送到服务器的Web服务之前获取数据(例如,从SQL Server获取)。在这种情况下,预定的作业可能会丢弃BizTalk监视的文件夹中的文件,其中包含BizTalk不关心的一些内容 - 只需确保文件中有某些内容,因为BizTalk喜欢丢弃空的0字节文件

BizTalk不是作业调度程序。因此,尽管您可以使用类似计划任务适配器的东西,但BizTalk的最佳位置实际上是消息的转换,路由和/或业务流程编排,以及可插入的体系结构(使用适配器)。通常,您希望让BizTalk处理所有这些功能,并使用其他系统(如果可用)进行调度。

答案 1 :(得分:1)

  1. 不确定你在问什么。您是否希望将 BizTalk中的WS 公开给其他系统,或者通过来自 BizTalk的其他系统调用WS公开的BizTalk docs应该让你开始使用其中任何一个。

  2. BizTalk没有内置的任何计划安排。但是,最常见的解决方法是使用BizTalk计划任务适配器,您可以从其codeplex site获取。

  3. 不确定你的意思。你能澄清一下吗?