一个简单的 BizTalk 实战示例






4.93/5 (16投票s)
2006 年 2 月 23 日
7分钟阅读

172651

802
一个使用BizTalk Server的简单示例。
引言
不久前,我在CodeProject上写了一篇题为“向奶奶解释BizTalk架构”的文章。这篇文章给我带来了很多关于实际动手示例的反馈,我当时也承诺了。所以,本文就是为了实现这个承诺。本文的目标读者是BizTalk初学者,它将解决两个基于内容路由(CBR)的简单场景,其中消息通过消息框上的过滤器在发送和接收端口之间直接订阅。这些场景解释如下。
场景 1
您可能还记得上一个示例中的端口设施。该示例包括不同的包/消息的到达和路由。在这个案例中,场景是:有一个接收位置,您在那里接收到一个文件,然后需要将其复制到另一台机器上的另一个文件夹(这也可以是连接到公司局域网的德里分公司)。
场景 2
场景2是场景1的延伸。在这里,德里的公司广域网发生了一些故障,您突然需要将此文件移动到FTP服务器。您很快就会看到在BizTalk中进行此更改是多么容易。
步骤概览
以下是步骤摘要
- 定义文件的接收端口和接收位置。
- 定义接收位置属性。
- 定义发送端口并配置端口。
- 定义连接接收端口和发送端口的过滤器。
- 启动、注册、部署和测试我们的场景1。
- 为场景2创建一个新的发送端口,使用FTP作为传输方式。
- 配置这个新的发送端口和过滤器。
- 启动、注册、部署和测试我们的场景2。
言归正传..
我已将活动分解为一系列逻辑步骤。
步骤1:BizTalk浏览器
在Visual Studio .NET中,如果安装了BizTalk,请按Ctrl-Alt-Z调出BizTalk浏览器。您也可以从“视图”菜单中打开它。
步骤2:创建接收端口和接收位置
在浏览器中,展开您的服务器节点,右键单击接收端口,然后选择添加接收端口。在下一个对话框中,选择单向端口,然后单击下一步。在出现的对话框中,将我们的接收端口命名为AtlanticExpress.Pickup
,然后单击“确定”。这将在“接收端口”下创建我们的接收端口AtlanticExpress.Pickup
。
步骤3:创建和配置接收位置
右键单击我们刚刚创建的接收端口AtlanticExpress.Pickup
下的“接收位置”,然后在此新端口上,从菜单中选择添加接收位置。在出现的对话框中,将名称更改为AtlanticExpress.Pickup.Location
,然后从可用传输适配器列表中选择传输类型为FILE
。将“接收处理程序”更改为BizTalkServerApplication
(如果您的BizTalk安装已命名为其他名称,则该名称将出现在下拉列表中)。将“接收管道”更改为Microsoft.BizTalk.DefaultPipelines.PassThruReceive
。这意味着我们要求BizTalk直接传递文件,而无需进行任何处理,例如剥离Mime头或使用我们的自定义接收管道验证参与方。
现在在地址 (URI) 字段中,使用“...”按钮配置文件传输详细信息。在本地计算机上创建一个目录C:\AtlanticWareHouse\Pickup,并将其选作“接收文件夹”,如下图所示。将文件掩码配置为*.*。这意味着我们将掩码设置为拾取任何文件。如果需要更精细地控制拾取的文件,我们可以将其设置为*.txt、*.csv或MyCustom*.xml。其他值保留默认设置,如下图所示
步骤4:创建并配置发送端口
现在在BizTalk浏览器中,右键单击发送端口并选择添加发送端口。在创建新发送端口对话框中,选择静态单向端口(如果尚未选择)并单击“确定”。在端口属性对话框中,将名称更改为AtlanticExpress.Send
。在配置 > 传输 > 主下的树形控件中,将传输类型设置为文件。单击“...”按钮。要配置地址 (URI) 字段,请在本地计算机上创建一个文件夹C:\AtlanticWareHouse\Drop,并将其设置为目标文件夹(注意:这可以是您在德里的公司WAN位置,在这种情况下,您可以说\\DelhiServer\Shared\Drop)。在文件名字段中,输入%SourceFileName%。这是一个宏,它告诉BizTalk保留原始文件名。(注意:如果您想要唯一名称,可以使用%MessageID%。这将生成一个随机GUID作为文件名。)将复制模式保留为新建,然后单击“确定”。
现在,在配置 > 发送 > 常规下,将发送管道设置为Microsoft.BizTalk.DefaultPipelines.PassThruTransmit
。这意味着我们告诉BizTalk直接传递整个文件,无需任何额外处理。我们可以在这里使用自定义管道来加密或签署消息,如果需要的话。
下一步是使用过滤器将接收和发送端口连接在一起。正如我所说,这是一个CBR场景。BizTalk会将文件的某些上下文属性提升到与文件关联的消息上下文中。发送端口使用此信息进行订阅。您也可以在此处使用自己的自定义字段来决定路由。为此,在配置 > 过滤器和映射 > 过滤器下,将BTS.ReceivePortName
设置为AtlanticExpress.Pickup
,如下图所示
步骤5:启动
好的,现在我们已经准备好基本内容。我们需要启用接收位置。右键单击AtlanticExpress.Pickup.Location,然后从菜单中选择启用。
接下来,在发送端口AtlanticExpress.Send中,右键单击并选择启动。这将首先注册,然后启动端口。
现在,将一个文件放到您的接收目录中,您会看到它在几秒钟内消失(第一次请等待一分钟左右,以便加载订阅),然后查看您的投放目录。如果您在那里找到了文件,恭喜您刚刚完成了您的第一个BizTalk Hello World :-)。欢迎来到BizTalk!
步骤6:修改场景2的示例以使用FTP
现在,请记住,我们的场景2是将此投放位置从文件投放修改为FTP投放。因此,返回BizTalk浏览器,右键单击AtlanticExpress.Send并停止端口,然后再次右键单击并选择取消注册。双击该端口以打开配置窗口。现在,在配置 > 传输 > 主下,将传输类型设置为FTP。单击地址URI,它会打开下面的对话框,并设置以下属性:将服务器设置为您的服务器名称(ftp.yoursite.com)或IP(例如67.15.21.10),设置用户名(您的FTP用户名),设置您的FTP用户的密码,设置文件夹为您希望文件被投放到的文件夹,例如/wwwroot/test。将目标文件名设置为%SourceFileName%。单击“确定”。
现在,您将回到“发送端口属性”,它应该如下图所示。单击“确定”返回到“资源管理器”。
步骤7:测试FTP场景
如上文步骤5所述,选择发送端口AtlanticExpress.Send,右键单击并注册,然后启动。现在,返回您的投放文件夹并放入一个文件。现在登录到您的FTP位置并浏览到此目录。您应该在那里看到您的文件,如果看到了,恭喜您已完成场景2。
关注点
您可以通过多种方式修改此场景,例如,您可以不修改发送端口,而是创建一个新的发送端口,并将这两个发送端口添加为一个发送端口组的一部分,该组订阅接收端口。这样,文件将同时投放到两个位置。您可以通过SMTP发送文件。可能性是无限的。我将留给您探索。作为告别语,如果您在示例中遇到任何困难,请在此处给我留言,或者在这个论坛上提问,我在那里更常出现。您也会得到更快的回复,因为该论坛有许多BizTalk用户。
历史
- 版本 1.0 - 2005年2月21日。