步骤 2:配置双向 WCF-WebHttp 发送端口

在此步骤中,将配置双向 WCF-WebHttp 发送端口,以调用 REST 资源 URL 来检索美国航空公司计划中的延迟。

配置 WCF-WebHttp 发送端口的步骤

  1. 在 BizTalk Server 管理控制台的 BizTalk 应用程序 1 节点下,右键单击“发送端口”,指向“新建”,然后单击“静态 Solicit-Response 发送端口”。

  2. 在“常规”选项卡上,执行下列操作:

    使用此选项 要执行此操作
    名称 键入 SendPortRESTAzureMarketPlace
    类型 选择 “WCF-WebHttp”。
    发送处理程序 选择“BizTalkServerApplication”
    发送管道 选择“ PassThruTransmit”。
    接收管道 选择“ PassThruReceive”。

    单击 “配置”

  3. “WCF-WebHttp 传输属性 ”对话框中,执行以下操作:

    1. 在“ 常规 ”选项卡上,对于“ 地址 (URI) ”,输入 https://api.datamarket.azure.com/oakleaf/US_Air_Carrier_Flight_Delays_Incr/

    2. 在“常规”选项卡上,对于 “HTTP 方法和 URL 映射”,输入以下内容:

      <BtsHttpUrlMapping>
      <Operation Method="GET" Url="/On_Time_Performance" />
      </BtsHttpUrlMapping>
      
      

      此处, GET 是 HTTP 谓词, On_Time_Performance 追加到基 URI,以构造唯一的资源 URL 以检索航班延误。

      提示

      在 URL 字段中,必须“转义”任何特殊的 XML 字符。 这可确保端口处理并保留特殊 XML 字符。 例如, & 特殊字符必须转义为 &amp;

      原名称:Url=”/Customer?{ID}& group=Location”

      收件人:Url=”/Customer?{ID}&amp;group=Location”

    3. 在“ 绑定 ”选项卡上的“ 最大接收消息大小” 字段中,选择一个足够大的值。 这是因为,包含航班状态的响应消息通常都相当大,并且可能超出指定的默认消息大小。

    4. “安全” 选项卡上,执行以下操作:

      1. 对于 “安全模式”,选择“ 传输”。

      2. 对于 “传输客户端凭据类型”,选择“ 基本”。

      3. 在“ 用户名凭据 ”框下,选择“ 编辑”。

      4. 在“ 客户端凭据 ”框中,选择“ 不使用 Single-Sign 启用”。

      5. 输入登录 Microsoft Azure 市场后从“我的帐户”选项卡检索到的用户名和密码。

        凭据将针对 客户 ID (用户名) 和 主帐户密钥 (密码) 标签列出。

      6. 选择“确定”。

    5. 在“ 消息 ”选项卡上,对于 “取消谓词正文”,指定要从请求消息中删除消息有效负载的谓词。 对于本教程,请将此指定为 GET。 原因如下:美国航空公司航班延误 REST 终结点上的 GET 方法调用不需要消息有效负载;REST 资源 URL 足以检索信息。 但是,若要触发进行 REST 调用的 WCF-WebHttp 发送端口,请删除具有某些消息正文的虚拟消息。 该发送端口不得将此虚拟消息发送到 REST 终结点,因为如前所述,该终结点不需要消息负载。 因此,在调用 REST 终结点之前,适配器仅为在“ 取消谓词正文 ”文本框中指定的谓词从虚拟消息中去除消息有效负载。

    6. 单击“ 确定” ,直到返回“发送端口属性”对话框。 在左窗格中,单击“ 筛选器”,并指定筛选器以使用在 步骤 1:配置文件接收位置中创建的接收端口接收的所有消息。

      参数
      属性 设置为 BTS。ReceivePortName
      “运算符” 设置为 ==
      设置为 ReceivePortRestAzureMarketPlace
    7. 单击“确定”。

另请参阅

教程 5:使用 BizTalk Server 调用 REST 接口