BizTalk动手实验(七)WCF-SQL与WCF-BasicHTTP适配器使用

 更多内容请查看:BizTalk动手实验系列目录

                      BizTalk 开发系列

1 课程简介

通过本课程熟悉WCF-SQL与WCF-BasicHTTP适配器的的使用

2 准备工作

1. 新建BizTalk空项目

2. 配置BizTalk项目的应用程序名称及程序签名。

3 演示

3.1 生成数据库表相应操作的Schema

1. 右击项目,添加生成项

2. 点击Consume Adapter Service

clip_image001

3. 绑定类型中选择sqlBinding, 在配置URI的URI属性中输入数据库信息

clip_image002

4. 点击连接按钮

5. Select contract type选择Client(Outbound Operations), 在category的Tables中选择 contacts,在操作中选择Insert和Select

clip_image004

6. 生成向导会生成相应的Schema文件及绑定文件

clip_image005

7. 生成并部署项目

3.2 发布Schema为WCF-BasicHttp服务

1. 点击Visual Studio 工具菜单中的BizTalk WCF Service 发布向导。

clip_image006

2. 点击下一步

clip_image007

3. 在传输类型中选择WCF-BasicHttp,并选择在刚才部署的BizTalk应用程序中创建接收端口

clip_image008

4. 在创建依法中选择发布Schema为WCF服务

clip_image009

5. 创建Select跟Insert方法

clip_image010

6. 右击方法相应的请求与输出参数,选择Schema类型

clip_image011

7. 根据命令空间选择相应的Schema

clip_image012

8. 配置好相应的操作与参数类型

clip_image013

16. 输入相应的命名空间

clip_image014

9. 输入URL地址,启用匿名访问

clip_image015

10. 确认配置并点击创建

clip_image016

11. 创建完成

clip_image017

12. BizTalk应用程序中会有相应的接收端口被创建

clip_image018

13. 打开IIS 7 管理器,新建应用程序池BTSAppPool,将运行账户改为Administrator

clip_image019

14. 修改WCF-SQLDemo应用程序的运行池为BTSAppPool

15. 修改Web应用的Web.config(默认文件夹位置为:C:\inetpub\wwwroot\WCF-SQLDemo),开启通过http get 的方式获取服务的WSDL

<serviceMetadata httpGetEnabled="true" httpsGetEnabled="false" />

3.3 配置WCF-SQL发送端口

1. 右击BizTalk管理控制台的应用程序,右键选择导入Binding

clip_image020

2. 选择项目文件夹下的WcfSendPort_SqlAdapterBinding_Custom.bindinginfo.xml

3. BizTalk将自动生成发送端口

clip_image021

4. 在发送端口的配置文件中配置订阅条件,即接收端口名称为WCF-BasicHttp发布向导生成的接收端口名称:

clip_image023

3.4 测试服务

    1. 启动WCF-SQL应用程序
    2. 开启soapUI,新创建项目,在WCFSQLServices.svc访问地址后面加上 ?wsdl ,即可得到WSDL

clip_image024

    1. 修改WCF-SQL适配器的SOAP Action Header的Action为TableOp/Select/dbo/contacts 进行Select的操作,验证返回的数据是否正确

clip_image026

    1. 修改WCF-SQL适配器的SOAP Action Header的Action为TableOp/Insert/dbo/contacts 进行Insert的操作,验证数据库中是否有相应的值插入。由于ID为自增长字段,请删除请求消息中的ID字段。

clip_image028

3.5 使用存储过程

1. 如3.1所示,在操作类别中选择存储过程

clip_image030

2. 部署网站

3. 如3.2所示发布该Schema为Web Service服务

http://localhost/ContectsServices

4. 修改Web应用的应用程序运行池

5. 确认Operation是否与WCF-SQL适配器SOAP Action Map中的Action Map对应。

6. 使用soapUI时行测试

clip_image032

3.6 自定义配置WCF-BasicHttp及WCF-SQL适配器

    1. 已完成3.2的步骤
    2. 在BizTalk项目中添加”生成项目”
    3. 生成类型中选择适配器类型

clip_image033

    1. 配置SQL URI,输入相应的服务器名称、数据库及标识
    2. 在绑定属性的Polling配置项的

PolledDataAvailableStatement(轮询条件)属性值 为select count(*) from contacts where status =1

PollingIntervalInSecond (轮询间隔)属性值为5

PollingStatement (轮询命令)属性值为 select top 1 * from contacts where status =1

clip_image034

    1. 在协议类别中选择Inbound操作,在可用的操作中选择TypedPolling

clip_image036

注: Polling是轮询方式,但是这种方式是不带架构的,TypedPolling也是轮询方式,这种方式可以带出架构。Notification是用于数据有变化时进行相关操作

    1. 打开BizTalk控制台,在相应的BizTalk应用程序中新建“请求和发送”接收端口及接收位置
    2. 在接收位置配置中适配器选择WCF-BasicHttp,点击适配器的配置按钮
    3. 在地址中输入发布的WebService路径及文件即可

clip_image037

clip_image038

    1. 接收管道选择XMLReceive,发布管道选择PassThruTransmit

clip_image040

    1. 点击确认完成接收端口的配置
    2. 新建“请求-回复”发送端口

clip_image041

    1. 在适配器类型中选择WCF-SQL
    2. 点击适配器的配置按钮,在URI配置中输入相应的服务器及数据库信息

clip_image042

    1. SOAP Action Header的Action可以从生成的Schema的Action申明中中获得

clip_image043

11. 接收和发送管道选择XMLReceive和XMLTransmit

clip_image045

    1. 在发送管道在配置消息订阅,订阅的条件为“接收端口的名称”=“之前创建的WCF-BasicHttp的名称”,如下:

clip_image047

  1. 确认启动BizTalk应用程序并重启BizTalk实例,进行测试。
  2. 测试时通过使用不同的SOAP Action Map来进行

3.7 轮询数据

    1. 新建单向接收端口有及接收位置,在适配器类型中选择WCF-SQL,点击适配器配置
    2. 在WCF-SQL适配器的URI中输入服务器、数据库、实例及Inbound标识

clip_image048

    1. 在Binding的配置界面Polling(InBound)类别的PolledDataAvailableStatement(轮询条件)的属性设置为

Select count(id) from contacts where status=1

    1. 将PolledStatement(轮询命令)的属性设置为

Select * from contacts where status=1

    1. 将PollingIntervalInSeconds(轮询间隔)设置为5秒,PollWhileDataFound(指定是在存储过程或查询未返回任何结果后才提交其他批,还是在每个轮询间隔提交一个存储过程结果或查询结果)默认为False.

clip_image049

  1. 将管道类型选择为XMLRecevie.
  2. 点击确认,完成创建接收端口确认.
  3. 创建单向文件发送端口并设置订阅条件为“接收端口名称”=“新创建的接收端口名称”
  4. 启动应用程序,测试订阅的发送端口是否有消息输出

posted on 2011-12-19 11:33  Gary Zhang  阅读(2924)  评论(0编辑  收藏  举报

导航