如何使用 BizTalk WCF 服務發佈精靈來發佈根據訊息內容決定路由之 WCF 接收位置的服務中繼資料
您可以使用 [BizTalk WCF 服務發佈精靈] 來建立 WCF 服務,以便發佈根據訊息內容決定路由之現有 WCF 接收位置的服務中繼資料。
注意
您必須先建置 BizTalk 專案,然後再執行 BizTalk WCF 服務發佈精靈。 BizTalk 專案必須包含結構描述,才能發佈為 WCF 服務。 發佈 WCF 配接器的服務中繼資料之前,您也必須使用 BizTalk Server 管理主控台或隨附于 BizTalk Server 的 BTSTask 命令列工具來建立 WCF 接收位置。 如需如何建立 WCF 接收位置的詳細資訊,請參閱 WCF 配接器中每個 WCF 配接器的適當主題。
若要發佈根據訊息內容決定路由之現有 WCF 接收位置的服務中繼資料
按一下[開始],指向[所有程式],指向[BizTalk Server],然後按一下 [BizTalk WCF 服務發佈精靈]。
注意
若要建立並發佈 BizTalk 協調流程和結構描述的 WCF 服務中繼資料,您可以使用 BizTalk WCF 服務發佈精靈。 若要以 SOAP 配接器將協調流程和結構描述發佈成 Web 服務,您可以使用 BizTalk Web 服務發佈精靈。
在 [ 歡迎使用 BizTalk WCF 服務發佈精靈 ] 頁面上,按 [下一步]。
在 [ WCF 服務類型 ] 頁面上,選取 [僅限 Metdata 端點] (MEX) 選項,以發佈 WCF 服務,以提供您將在下一個步驟中選取之 WCF 接收位置的服務中繼資料。
在 [WCF 服務類型] 頁面上的 [ 發佈接收位置的中繼資料 ] 下拉式清單中,選取要發行服務中繼資料的 WCF 接收位置,然後按 [ 下一步]。
在 [ 建立 WCF 服務 ] 頁面上,選取 [ 發佈架構為 WCF 服務],然後按 [ 下一步]。
在 [WCF 服務 ] 頁面上,定義 WCF 服務合約 () 來發佈服務中繼資料。 您可以使用 [Web 服務描述 ] 對話方塊中的樹狀結構來新增、移除、重新命名及編輯 WCF 服務要發佈的 Web 服務描述節點。 [ 資訊 ] 對話方塊提供所選節點的相關資訊,並在目前節點或任何子節點中顯示任何錯誤:
樹狀結構的根節點 (Web 服務描述) 會描述要發佈的 WCF 服務合約。 虛擬目錄名稱會使用根節點做為預設名稱。 您可以選取 [重新命名 Web 服務描述],修改 WCF 服務要發佈的 Web 服務描述名稱。
預設服務節點 Operation1的 Web 方法節點 Service1,預設顯示在 [Web 服務描述 ] 對話方塊中,可用於要求-回應接收位置。 如果您為此服務合約選取單向 WCF 接收位置,請以滑鼠右鍵按一下預設 Web 方法節點,按一下 [ 刪除 Web 方法],然後建立單向 Web 方法,如下所示:以滑鼠右鍵按一下預設服務節點,指向 [ 新增 Web 方法],然後按一下 [單向]。
若要新增 WCF 服務,請以滑鼠右鍵按一下 Web 服務描述名稱,然後按一下 [ 新增 Web 服務]。 這樣便會建立新的 WCF 服務,而不需要進行任何 WCF 作業。 若要修改 WCF 服務的名稱,請以滑鼠右鍵按一下 WCF 服務節點,按一下 [重新命名 Web 服務],然後按 ENTER 以接受新名稱。
若要新增 WCF 作業,請以滑鼠右鍵按一下 WCF 服務節點,指向 [ 新增 Web 方法],然後按一下要求 WCF 作業的單 向 () 或要求回應 (,以取得要求 -回應 WCF 作業) 。
若要設定要求和回應架構類型,請以滑鼠右鍵按一下 [要求 ] 或 [ 回應 ] 節點,然後按一下 [ 選取架構類型]。 在 [ 要求訊息類型 ] 對話方塊中,在 [BizTalk 元件檔 ] 文字方塊中輸入包含檔架構的元件名稱,或按一下 [ 流覽 ] 來搜尋元件。 [可用的架構類型] 清單檢視會顯示架構的每個根項目。 選取要新增為要求或回應結構描述類型的根節點。
注意
如果您將 BizTalk 元件檔安裝到全域組件快取中, (GAC) ,請確定 GAC 中的元件已更新為您將在 [ 要求訊息類型 ] 對話方塊中選取的元件。 如果 GAC 中的組件具有相同的完整格式名稱,[BizTalk WCF 服務發佈精靈] 就會使用 GAC 中的組件檔案,而非您所選取的檔案。
您可以重新命名 要求 和 回應 節點,而不會影響產生的程式碼。 在定義結構描述之後,您便可以重新命名部分項目,這樣做會修改 WCF 作業參數名稱。 您可以透過檢視 WCF 服務所要發佈的服務中繼資料,查看這些變更。
注意
重新命名任何 Web 服務描述節點時,不可以使用空格。
按 [下一步] 繼續精靈。
在 [ WCF 服務屬性] 頁面上的 [ WCF 服務目標名稱] 文字方塊中,輸入 WCF 服務的目標命名空間,然後按 [ 下一步]。
在 [WCF 服務位置] 頁面上的 [ 位置 ] 文字方塊中,輸入產生 WCF 服務的 Web 目錄名稱。 您可以接受預設位置 (
http://localhost/<Web service description name>
) 、在 [ 位置 ] 文字方塊中輸入 WCF 服務的位置,或按一下 [ 流覽 ] 並選取 Web 目錄。 接著,選取下列任何一個選項:覆寫現有專案。 此選項只有在 Web 目錄已存在時才能使用。 只有當您選取了這個選項時,才能夠發佈至相同的位置。 否則,您必須輸入不同的專案位置。
允許匿名存取 WCF 服務。 這個選項會新增已建立之虛擬目錄的匿名存取。 根據預設,虛擬目錄會從其父虛擬目錄或網站 (如果它是最上層虛擬目錄的話) 繼承存取權限。
當您完成此頁面時,請按 [ 下一步]。
注意
專案位置可以存在不同的伺服器上。 若要將 WCF 服務發佈至不同的伺服器,請將專案名稱輸入為
http://<servername>/<WCF service location>
。注意
專案位置可以存在非預設的網站上。 發佈至非預設的網站時,請在 URL 中加入網站的連接埠編號。 例如:
http://<servername>:8080/<WCF service location>
。注意
精靈在 Web 應用程式之 \App_Data\Temp 資料夾中建立的 BindingInfo.xml 檔案會使用管線的預設值。 接收管線的預設值是 Microsoft.BizTalk.DefaultPipelines.XMLReceive 管線,而傳送管線的預設值是 Microsoft.BizTalk.DefaultPipelines.PassThruTransmit 管線。
在 [ WCF 服務摘要 ] 頁面上,檢閱 WCF 服務的設定。
按一下 [建立 ] 以建立 WCF 服務。
按一下 [完成] 以完成 BizTalk WCF 服務發佈精靈。
若要設定發佈服務中繼資料的 Web 應用程式
針對 BizTalk WCF 服務發佈精靈所建立的 Web 應用程式啟用 ASP.NET。 如需詳細資訊,請參閱 啟用 Web 服務。
注意
如果您正使用其他版本的 Windows 作業系統,就必須將應用程式集區的識別帳戶新增至 BizTalk Server 系統管理員群組。 將適當的帳戶新增至 BizTalk Server 系統管理員群組之後,您必須重新啟動 IIS 服務,才能讓設定生效。
開啟命令提示字元、移至 %SystemDrive%\InetPub\ 中 BizTalk WCF 服務發佈精靈建立 WCF 服務的資料夾,然後使用 [記事本] 來開啟 Web.config 檔案。
在 [記事本] 中,在system.web > 元素內 <新增下列這一行:
<trust level="Full" originUrl="" />
注意
這項設定是選擇性的,而且它會將受限於作業系統安全性之任何資源的存取權授與主控已發佈之 WCF 服務的 ASP.NET 應用程式。 當您在同一部電腦上安裝和執行 Windows SharePoint Services 以及已發佈的 WCF 服務時,這就是 WCF 所需的信任層級。
在 Internet Explorer 的 [位址] 方塊中,使用 HTTP:// host[:p ort]/apppath/wcfservicename.svc格式輸入 WCF 服務的 URL,以測試已發佈的 WCF 服務。 下表將描述這些參數。
參數 值 host[:port] 您已部署 WCF 服務之電腦的名稱。 冒號和連接埠編號可以接在這個伺服器名稱後面。 apppath 虛擬目錄的名稱和 Web 應用程式路徑。 wcfservicename.svc WCF 服務 .svc 檔案的名稱。 為了避免不小心洩露可能含有機密的服務中繼資料,我們建議您透過執行下列工作,在實際執行環境中停用這種行為:
在 [記事本] 中,開啟 Web.config,此檔案位於 %SystemDrive%\InetPub\ 底下 BizTalk WCF 服務發佈精靈建立 WCF 服務的資料夾中。
在 [記事本] 中,將serviceMetadata > 元素中的 <HTTPGetEnabled屬性設定為 false,如下所示:
<serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" />
另請參閱
如何使用 BizTalk WCF 服務發佈精靈將結構描述發佈為 WCF 服務
逐步解說:使用 WCF-NetMsmq 配接器發佈 WCF 服務