zoukankan      html  css  js  c++  java
  • BizTalk动手实验(七)WCFSQL与WCFBasicHTTP适配器使用

     更多内容请查看: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. 启动应用程序,测试订阅的发送端口是否有消息输出
  • 相关阅读:
    (BFS 二叉树) leetcode 515. Find Largest Value in Each Tree Row
    (二叉树 BFS) leetcode513. Find Bottom Left Tree Value
    (二叉树 BFS DFS) leetcode 104. Maximum Depth of Binary Tree
    (二叉树 BFS DFS) leetcode 111. Minimum Depth of Binary Tree
    (BFS) leetcode 690. Employee Importance
    (BFS/DFS) leetcode 200. Number of Islands
    (最长回文子串 线性DP) 51nod 1088 最长回文子串
    (链表 importance) leetcode 2. Add Two Numbers
    (链表 set) leetcode 817. Linked List Components
    (链表 双指针) leetcode 142. Linked List Cycle II
  • 原文地址:https://www.cnblogs.com/cbcye/p/2293087.html
Copyright © 2011-2022 走看看