如何使用 BizTalk WCF 服務使用精靈以使用 WCF 服務
BizTalk 配接器架構會提供將配接器結構描述和 BizTalk 類型新增至 BizTalk 專案的方法。 BizTalk WCF 服務使用精靈可讓您將 WCF 傳送配接器新增到 BizTalk 專案。 對於 WCF 傳送配接器,您必須針對傳送埠選取現有的中繼資料交換 (MEX) 端點。 然後,您必須輸入用來產生結構描述和類型的資訊。 當精靈完成時,在使用 WCF 服務時所需要的結構描述和類型就會加入到 BizTalk 專案中。
若要在專案中新增 WCF 傳送配接器適用的結構描述和類型
在 Microsoft Visual Studio BizTalk 專案中,于 方案總管 中,以滑鼠右鍵按一下您的專案,按一下 [新增],然後按一下 [新增產生的專案]。
在 [新增產生的專案 - <專案名稱> ] 對話方塊中的 [範本] 區段中,選取 [取用 WCF 服務],然後按一下 [新增]。
在 [ 歡迎使用 BizTalk WCF 服務取用精靈 ] 頁面上,按 [下一步]。
在 [ 中繼資料來源] 頁面上,選取要匯入的中繼資料來源,然後按 [ 下一步]。
若要從執行中服務的中繼資料交換端點下載元資料檔案,請選取 [ 中繼資料 Exchange (MEX) 端點 ] 選項。 這能讓我們建立一個傳送埠,在用戶端與 WCF 服務間使用。 若要使用此選項,服務端點必須針對使用 HTTP/GET 或 HTTPS/GET 要求所進行的擷取作業,發佈服務中繼資料。 服務端點也必須允許以使用者名稱和密碼並配合基本驗證配置的形式,透過匿名使用者認證或使用者認證來存取中繼資料。
注意
使用基本驗證配置時,這些認證是以純文字格式傳送,因此很容易被攔截。 而且此配置沒有對服務傳回的資訊提供任何保護。 因此,您必須使用「安全通訊端層」(SSL) 來加密資料。
若要匯入任何其他元資料檔案,請選取 [ 中繼資料檔案] (WSDL 和 XSD) 選項,以從檔案系統匯入中繼資料。
注意
不是所有服務都必須發行中繼資料。 停用中繼資料發行則會降低服務的攻擊面,並降低非預期資料暴露的風險。
如果您在 [中繼資料來源] 頁面上選取 [中繼資料 Exchange (MEX) 端點] 選項,[中繼資料端點] 頁面隨即出現。 在 [ 中繼資料端點 ] 頁面上,指定執行中服務的 URL,以提供透過 WS-Metadata Exchange 或 Http-Get 下載的中繼資料。 若要從 URL 取得元資料檔案,請按一下 [取得]。 如果執行中的服務需要具有基本驗證配置的使用者認證,請按一下 [ 編輯 ] 以開啟 [BizTalk WCF 服務 取用精靈] 對話方塊,您可以在其中提供存取執行服務時要使用的使用者名稱和密碼。
注意
若要下載透過 HTTP 或 HTTPS 發佈的 WCF 服務的中繼資料,您無法使用 MEX 端點,例如
http://localhost:8087/CalculatorService/mex
[ 中繼資料位址 ] 文字方塊。 針對 WCF 服務,您必須使用 WSDL 中繼資料來下載中繼資料,如下所示:http://localhost:8087/CalculatorService
或http://localhost:8087/CalculatorService?wsdl
如果您在 [中繼資料來源] 頁面上選取 [中繼資料檔案 (WSDL 和 XSD) ] 選項,[中繼資料端點] 頁面隨即出現。 在 [ 中繼資料端點] 頁面上,指定要匯入的中繼資料檔案。 按一下 [新增 ] 以新增要匯入至 [中繼資料檔案 ] 檢視的中繼資料檔案。 這會開啟 [ 新增中繼資料檔案 ] 對話方塊,您可以在其中搜尋中繼資料檔案的磁片位置。
在 [ 新增中繼資料檔案 ] 對話方塊中,選取要用於中繼資料的完整 WSDL 和 XSD 檔案集。 您可以在命令提示字元中,輸入下列命令來產生這些中繼資料檔案:
svcutil.exe /t:metadata http://localhost/service.svc/mex
按一下 [移除 ] 以移除 [中繼資料檔案] 檢視中選取的 中繼資料檔案 。
注意
SvcUtil.exe 包含在 Windows Vista 和 .NET Framework 執行階段元件的 Microsoft Windows 軟體開發套件 (SDK) 中。
注意
如果以不安全的方法擷取服務中繼資料,就可能遭到竄改或詐騙。 遭竄改的中繼資料可能會將您的用戶端重新導向到惡意服務、包含損毀的安全性設定或包含惡意的 XML 結構。 中繼資料文件可能會非常大,而且經常儲存到檔案系統。 您必須確定中繼資料檔案未遭到竄改。
在 [ 匯入 WCF 服務中繼資料摘要 ] 頁面上,檢閱您的設定。 您可以按一下 [上一步 ] 進行任何變更。 然後按一下 [ 匯入 ] 以建立要用於取用 WCF 服務的 BizTalk 成品和類型。
在 [正在完成 BizTalk WCF 服務取用精靈 ] 頁面上,按一下 [ 完成]。 如果您想要再次執行此精靈,請選取 [ 再次執行此精靈 ] 選項,然後按一下 [ 完成]。
[BizTalk WCF 服務使用精靈] 會在 BizTalk 專案中,建立使用 WCF 服務時所需要的 BizTalk 結構描述和類型。 BizTalk 類型 (例如連接埠類型和多部分訊息類型) 會由協調流程建立。 我們建議您不要修改精靈所建立的協調流程。 而是依照您的目的,將新的協調流程加入到 BizTalk 專案。 BizTalk WCF 服務取用精靈也會建立兩個系結檔案, BizTalkServiceInstance.BindingInfo.xml 和 BizTalkServiceInstance_Custom.BindingInfo.xml。 BizTalkServiceInstance.BindingInfo.xml 是 BizTalk 系結檔案,可由開發命令列工具或精靈匯入,以使用標準系結 WCF 配接器來設定傳送埠,例如 WCF-NetMsmq 和 WCF-WSHttp 配接器。 BizTalkServiceInstance.BindingInfo.xml 是 BizTalk 系結檔案,可由開發命令列工具或精靈匯入,以使用 WCF-Custom 配接器設定傳送埠。
當您匯入產生的系結檔案時,它會填入 WCF。動作 對應格式的 Action 屬性。 若要查看此屬性的設定方式,請查看 BizTalk 管理主控台中 WCF 傳送埠傳輸屬性對話方塊中 [一般] 索引標籤上的 [動作] 文字方塊。
您可以指定 WCF。動作 屬性有兩種不同的方式:單一動作格式和動作對應格式。 如果您以單一動作格式設定此屬性,例如,
http://contoso.com/Svc/Op1
傳出訊息的 SOAPAction 標頭一律會設定為此屬性中指定的值。 如果您以動作對應格式設定此屬性,傳出 SOAPAction 標頭是由 BTS 決定。作業 內容屬性。 例如,如果此屬性設定為下列 XML 格式和 BTS。Operation 屬性設定為 Op1,WCF傳送配接器會用於http://contoso.com/Svc/Op1
傳出 SOAPAction 標頭。<BtsActionMapping>
<Operation Name="Op1" Action="http://contoso.com/Svc/Op1" />
<Operation Name="Op2" Action="http://contoso.com/Svc/Op2" />
</BtsActionMapping>
如果傳出訊息來自協調流程埠,協調流程實例會動態設定 BTS。具有 埠作業名稱的 Operation 屬性。 如果傳出訊息是以內容為基礎的路由路由傳送,您可以設定 BTS。 管線元件中的作業屬性。 BizTalk WCF 取用精靈所產生的埠具有符合BtsActionMapping > 元素中 <Name屬性名稱的作業。 您不需要明確設定 BTS。 當您透過精靈產生的埠傳送訊息時,協調流程中的作業屬性。
另請參閱
如何使用 BizTalk WCF 服務發佈精靈將協調流程發佈為 WCF 服務
如何使用 BizTalk WCF 服務發佈精靈將結構描述發佈為 WCF 服務