首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

Visual Studio 內建 WCF 測試用戶端 (WcfTestClient) 使用指南

     編輯:關於.NET

適用情境

拿到 WCF 服務位址但無文件、不知有哪些方法、參數型別。寫測試專案太費時,VS 內建 WCF Test Client 可即時呼叫、檢驗服務。

快速上手

  1. 啟動服務(確保端點正常監聽)。
  2. 開啟 Developer Command Prompt for VS(或一般命令提示字元設定好路徑)。
  3. 輸入 wcftestclient 按 Enter。
  4. 啟動 WcfTestClient
  5. 視窗開啟後,右鍵 My Project > Add Service,貼上服務位址(如 https://127.0.0.1:8888/calculatorservice)。
  6. 加入服務 服務載入完成
  7. 左側樹狀結構展開服務合約與操作,雙擊操作(如 Add(double, double))在右側輸入參數值。
  8. 輸入參數
  9. 點擊 Invoke 執行,下方顯示回應與 SOAP 訊息。
  10. 執行結果

完整範例服務代碼(供參考)

契約

[ServiceContract(Namespace = "https://www.wolfy.com")]
public interface ICalculator
{
    [OperationContract]
    double Add(double x, double y);
}

實作

public class CalculatorService : ICalculator
{
    public double Add(double x, double y) => x + y;
}

主控台承載

static void Main()
{
    using (var host = new ServiceHost(typeof(CalculatorService)))
    {
        host.Opened += (s, e) => Console.WriteLine("Service started. Press any key to stop.");
        host.Open();
        Console.ReadKey();
    }
}

App.config 關鍵設定

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <behavior name="MyServiceBehavior">
        <serviceMetadata httpGetEnabled="true" />
      </behavior>
    </serviceBehaviors>
  </behaviors>
  <services>
    <service name="Wolfy.Service.CalculatorService" behaviorConfiguration="MyServiceBehavior">
      <endpoint contract="Wolfy.Contract.ICalculator" binding="wsHttpBinding" />
      <host>
        <baseAddresses>
          <add baseAddress="https://127.0.0.1:8888/calculatorservice" />
        </baseAddresses>
      </host>
    </service>
  </services>
</system.serviceModel>

優缺點總結

優點缺點
零代碼、即開即用不支援複雜型別序列化自定義
自動產生 Proxy、顯示 Request/Response XML無法模擬高併發、效能測試
支援 Basic/WS/NetTcp 等繫結UI 略顯過時,大量資料檢視不便

進階替代工具

  • SoapUI:功能強大、支援 REST/WS、可自動化測試。
  • Postman:主攻 REST,亦可匯入 WSDL 測試 SOAP。
  • Visual Studio 自動產生服務參考:建立正式用戶端專案時使用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved