在此步驟中,您會設定雙向 WCF-WebHttp 傳送埠來叫用 REST 資源 URL,以擷取美國航空公司的排程延遲。
設定 WCF-WebHttp 傳送埠
在 BizTalk Server 管理控制台的 [ BizTalk 應用程式 1 ] 節點底下,以滑鼠右鍵按兩下 [ 傳送埠],指向 [ 新增],然後按兩下 [ 靜態 Solicit-Response 傳送埠]。
在 [一般] 索引標籤上,執行下列動作:
使用此 若要這樣做 名稱 輸入 SendPortRESTAzureMarketPlace。 型別 選取 [WCF-WebHttp]。 傳送處理程式 選取 [BizTalkServerApplication]。 傳送管線 選取 PassThruTransmit。 接收管線 選取 PassThruReceive。 按一下 [設定] 。
從 [WCF-WebHttp 傳輸屬性 ] 對話框中,執行下列動作:
在 [ 一般] 索引標籤上,針對 [位址][URI],輸入
https://api.datamarket.azure.com/oakleaf/US_Air_Carrier_Flight_Delays_Incr/。在「一般」 索引標籤的「HTTP 方法和 URL 對應」中,輸入以下內容:
<BtsHttpUrlMapping> <Operation Method="GET" Url="/On_Time_Performance" /> </BtsHttpUrlMapping>在這裡, GET 是 HTTP 動詞, On_Time_Performance 附加至基底 URI,以建構唯一的資源 URL 以擷取航班延誤。
這很重要
在 URL 欄位中,您必須「逸出」任何特殊 XML 字元,以確保埠會處理並保留特殊字元。 例如,您必須將
&特殊字元轉義為&。針對以下文字:
Url="/Customer?{ID}&group={Location}"請改用下列版本:
Url="/Customer?{ID}&group={Location}"如果 REST 服務也需要在執行時使用的 URL 中跳脫特殊字元,您可能必須使用雙重跳脫。
針對下列文字:
Url="/Customer?{ID}&group={Location}"請改用下列版本:
Url="/Customer?{ID}&amp;group={Location}"在 [ 系結] 索引 標籤的 [ 已接收訊息大小上限 ] 字段中,選取足夠大的值。 這是因為包含航班狀態的回應消息通常很大,而且可能超過指定的預設訊息大小。
在 [安全性] 索引標籤上,進行下列工作:
針對 [安全性模式],選取 [ 傳輸]。
針對 [傳輸客戶端認證類型],選取 [ 基本]。
在 [ 使用者名稱認證] 方塊底下,選取 [ 編輯]。
在 [客戶端認證] 方塊中,選取 [不要使用Single-Sign On]。
在您登入 Microsoft Azure Marketplace 之後,輸入您從 [我的帳戶] 索引卷標擷取的使用者名稱和密碼。
認證會根據 客戶識別碼 (用戶名稱)和 主要帳戶密鑰 (密碼)標籤列出。
請選擇 [確定]。
在 [訊息] 索引標籤中,於 [抑制動詞的主體] 設定中,指定您想從要求訊息中去除訊息內容的動詞。 在本教學課程中,將此指定為
GET。 原因如下:美國航空公司航班延誤 REST 端點上的 GET 方法呼叫不需要訊息承載;REST 資源 URL 足以擷取資訊。 不過,若要觸發進行 REST 呼叫的 WCF-WebHttp 傳送埠,您需要放入一個包含內容的虛擬訊息。 傳送埠不得將該虛擬訊息傳送至 REST 端點,因為如先前所述,端點不會預期訊息承載。 因此,在呼叫 REST 端點之前,配接器只會針對您在 隱藏本文的動詞 文本框中指定的動詞,從虛擬訊息中去除訊息承載。按兩下 [確定 ],直到您回到 [傳送埠內容] 對話框為止。 從左窗格中,按兩下 [ 篩選],並指定篩選條件,以取用透過您在 步驟 1:設定 FILE 接收位置中所建立之接收埠所接收的所有訊息。
參數 價值觀 財產 設定為 BTS。ReceivePortName 運算子 設定為 == 價值 設定為 ReceivePortRestAzureMarketPlace按一下 [確定]。