[DotNet] 動態建立WCF (Endpoint) 服務 by ASP.NET
最近在開發 WCF 時,遇到了要動態建立 WCF (Endpoint) 服務之需求,查詢網路上資源後,依然無法正常實作,經一番努力後得知運用在 ASP.NET 上時,要做些許調整,在此分享給各位。
以下為範例說明:
一、建立一個 WCF 專案。(無需修改任何程式碼)
二、建立一個測試 WCF 用的 ASP.NET 專案。
三、於該 ASP.NET 上「加入服務參考」,並設定命名空間為「WCFService」。
四、移除 web.config 中 <system.serviceModel> ... </system.serviceModel> 之 Tag。
五、將以下程式碼覆蓋於 Default.aspx.cs 上:
1: using System;2: using System.Collections.Generic;3: using System.Linq;4: using System.Web;5: using System.Web.UI;6: using System.Web.UI.WebControls;7: using System.ServiceModel.Channels;8: using System.ServiceModel;9:
10: public partial class _Default : System.Web.UI.Page11: {
12: protected void Page_Load(object sender, EventArgs e)13: {
14: // 請依需求設定對應之 Binding。15: Binding wcfBinding = new WSHttpBinding();16:
17: // 請依實際 URL 位置進行設定。18: EndpointAddress wcfEndpointAddress = new EndpointAddress("http://localhost:2112/WCFService/Service.svc");19:
20: WCFService.ServiceClient wcfService = new WCFService.ServiceClient(wcfBinding, wcfEndpointAddress);21:
22: wcfService.Open();
23:
24: Response.Write(wcfService.GetData(123456789));
25:
26: wcfService.Close();
27: }
28: }
六、執行結果:
參考資源:WCF 概要 (史帝芬心得筆記)