[DotNet] 動態建立WCF (Endpoint) 服務 by ASP.NET

[DotNet] 動態建立WCF (Endpoint) 服務 by ASP.NET

 

最近在開發 WCF 時,遇到了要動態建立 WCF (Endpoint) 服務之需求,查詢網路上資源後,依然無法正常實作,經一番努力後得知運用在 ASP.NET 上時,要做些許調整,在此分享給各位。

 

以下為範例說明:

一、建立一個 WCF 專案。(無需修改任何程式碼)

CreateWCFWebProject

二、建立一個測試 WCF 用的 ASP.NET 專案。

CreateASPWebProject

三、於該 ASP.NET 上「加入服務參考」,並設定命名空間為「WCFService」。

AddServiceReference

四、移除 web.config 中 <system.serviceModel> ... </system.serviceModel> 之 Tag。

RemoveWecConfigTag

五、將以下程式碼覆蓋於 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.Page 
  11:  {
  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:  }

六、執行結果:

ExecuteResult

 

參考資源:WCF 概要 (史帝芬心得筆記)

                 動態建立WCF (Endpoint) 服務

分享