更多内容请查看:BizTalk动手实验系列目录
1 课程简介
通过本课程熟悉WCF-SQL与WCF-BasicHTTP适配器的的使用
2 准备工作
1. 新建BizTalk空项目
2. 配置BizTalk项目的应用程序名称及程序签名。
3 演示
3.1 生成数据库表相应操作的Schema
1. 右击项目,添加生成项
2. 点击Consume Adapter Service
3. 绑定类型中选择sqlBinding, 在配置URI的URI属性中输入数据库信息
4. 点击连接按钮
5. Select contract type选择Client(Outbound Operations), 在category的Tables中选择 contacts,在操作中选择Insert和Select
6. 生成向导会生成相应的Schema文件及绑定文件
7. 生成并部署项目
3.2 发布Schema为WCF-BasicHttp服务
1. 点击Visual Studio 工具菜单中的BizTalk WCF Service 发布向导。
2. 点击下一步
3. 在传输类型中选择WCF-BasicHttp,并选择在刚才部署的BizTalk应用程序中创建接收端口
4. 在创建依法中选择发布Schema为WCF服务
5. 创建Select跟Insert方法
6. 右击方法相应的请求与输出参数,选择Schema类型
7. 根据命令空间选择相应的Schema
8. 配置好相应的操作与参数类型
16. 输入相应的命名空间
9. 输入URL地址,启用匿名访问
10. 确认配置并点击创建
11. 创建完成
12. BizTalk应用程序中会有相应的接收端口被创建
13. 打开IIS 7 管理器,新建应用程序池BTSAppPool,将运行账户改为Administrator
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
2. 选择项目文件夹下的WcfSendPort_SqlAdapterBinding_Custom.bindinginfo.xml
3. BizTalk将自动生成发送端口
4. 在发送端口的配置文件中配置订阅条件,即接收端口名称为WCF-BasicHttp发布向导生成的接收端口名称:
3.4 测试服务
- 启动WCF-SQL应用程序
- 开启soapUI,新创建项目,在WCFSQLServices.svc访问地址后面加上 ?wsdl ,即可得到WSDL
- 修改WCF-SQL适配器的SOAP Action Header的Action为TableOp/Select/dbo/contacts 进行Select的操作,验证返回的数据是否正确
- 修改WCF-SQL适配器的SOAP Action Header的Action为TableOp/Insert/dbo/contacts 进行Insert的操作,验证数据库中是否有相应的值插入。由于ID为自增长字段,请删除请求消息中的ID字段。
3.5 使用存储过程
1. 如3.1所示,在操作类别中选择存储过程
2. 部署网站
3. 如3.2所示发布该Schema为Web Service服务
http://localhost/ContectsServices
4. 修改Web应用的应用程序运行池
5. 确认Operation是否与WCF-SQL适配器SOAP Action Map中的Action Map对应。
6. 使用soapUI时行测试
3.6 自定义配置WCF-BasicHttp及WCF-SQL适配器
- 已完成3.2的步骤
- 在BizTalk项目中添加”生成项目”
- 生成类型中选择适配器类型
- 配置SQL URI,输入相应的服务器名称、数据库及标识
- 在绑定属性的Polling配置项的
PolledDataAvailableStatement(轮询条件)属性值 为select count(*) from contacts where status =1
PollingIntervalInSecond (轮询间隔)属性值为5
PollingStatement (轮询命令)属性值为 select top 1 * from contacts where status =1
- 在协议类别中选择Inbound操作,在可用的操作中选择TypedPolling
注: Polling是轮询方式,但是这种方式是不带架构的,TypedPolling也是轮询方式,这种方式可以带出架构。Notification是用于数据有变化时进行相关操作
- 打开BizTalk控制台,在相应的BizTalk应用程序中新建“请求和发送”接收端口及接收位置
- 在接收位置配置中适配器选择WCF-BasicHttp,点击适配器的配置按钮
- 在地址中输入发布的WebService路径及文件即可
- 接收管道选择XMLReceive,发布管道选择PassThruTransmit
- 点击确认完成接收端口的配置
- 新建“请求-回复”发送端口
- 在适配器类型中选择WCF-SQL
- 点击适配器的配置按钮,在URI配置中输入相应的服务器及数据库信息
- SOAP Action Header的Action可以从生成的Schema的Action申明中中获得
11. 接收和发送管道选择XMLReceive和XMLTransmit
- 在发送管道在配置消息订阅,订阅的条件为“接收端口的名称”=“之前创建的WCF-BasicHttp的名称”,如下:
- 确认启动BizTalk应用程序并重启BizTalk实例,进行测试。
- 测试时通过使用不同的SOAP Action Map来进行
3.7 轮询数据
- 新建单向接收端口有及接收位置,在适配器类型中选择WCF-SQL,点击适配器配置
- 在WCF-SQL适配器的URI中输入服务器、数据库、实例及Inbound标识
- 在Binding的配置界面Polling(InBound)类别的PolledDataAvailableStatement(轮询条件)的属性设置为
Select count(id) from contacts where status=1
- 将PolledStatement(轮询命令)的属性设置为
Select * from contacts where status=1
- 将PollingIntervalInSeconds(轮询间隔)设置为5秒,PollWhileDataFound(指定是在存储过程或查询未返回任何结果后才提交其他批,还是在每个轮询间隔提交一个存储过程结果或查询结果)默认为False.
- 将管道类型选择为XMLRecevie.
- 点击确认,完成创建接收端口确认.
- 创建单向文件发送端口并设置订阅条件为“接收端口名称”=“新创建的接收端口名称”
- 启动应用程序,测试订阅的发送端口是否有消息输出