使用C#創建WCF服務控制台應用程式

来源:http://www.cnblogs.com/cncc/archive/2017/07/12/7156300.html
-Advertisement-
Play Games

本文屬於原創,轉載請註明出處,謝謝! 一、開發環境 操作系統:Windows 10 開發環境:VS2015 編程語言:C# IIS版本:10.0.0.0 二、添加WCF服務、Internet Information Services(IIS) 1、進入“控制面板”,打開“程式和功能”,點擊左上角的“ ...


本文屬於原創,轉載請註明出處,謝謝!

 

一、開發環境

操作系統:Windows 10

開發環境:VS2015

編程語言:C#

IIS版本:10.0.0.0

二、添加WCF服務、Internet Information Services(IIS) 

1、進入“控制面板”,打開“程式和功能”,點擊左上角的“啟用或關閉Windows功能”後,在“.NET Framework 4.6 高級服務”中的子節點選中“WCF 服務”,如下圖所示:

2、再找到“Internet Information Services”,同樣選中該節點,如下圖所示:

3、點擊“確定”按鈕以便安裝這些服務與組件,等待完成安裝即可。

三、新建一個WCF服務庫

1、使用VS2015新建一個WCF服務庫,並將項目名稱改為“MyWCFService”,如下圖所示:

2、在解決方案資源管理器里將“IService1”介面、“Service1”類分別重命名為“IMyWCFService”與“MyWCFService”,如下圖所示:

VS2015將會分別創建“IService1”介面、“Service1”類,“IService1”介面含GetData、GetDataUsingDataContract方法,並使用“Service1”類實現了該介面,代碼如下:

“IService1”介面:

    // 註意: 使用“重構”菜單上的“重命名”命令,可以同時更改代碼和配置文件中的介面名“IMyWCFService”。
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        string GetData(int value);

        [OperationContract]
        CompositeType GetDataUsingDataContract(CompositeType composite);

        // TODO: 在此添加您的服務操作
    }

    // 使用下麵示例中說明的數據約定將複合類型添加到服務操作。
    [DataContract]
    public class CompositeType
    {
        bool boolValue = true;
        string stringValue = "Hello ";

        [DataMember]
        public bool BoolValue
        {
            get { return boolValue; }
            set { boolValue = value; }
        }

        [DataMember]
        public string StringValue
        {
            get { return stringValue; }
            set { stringValue = value; }
        }
    }

“Service1”類:

    // 註意: 使用“重構”菜單上的“重命名”命令,可以同時更改代碼和配置文件中的類名“Service1”。
    public class Service1 : IService1
    {
        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }

        public CompositeType GetDataUsingDataContract(CompositeType composite)
        {
            if (composite == null)
            {
                throw new ArgumentNullException("composite");
            }
            if (composite.BoolValue)
            {
                composite.StringValue += "Suffix";
            }
            return composite;
        }
    }

3、將滑鼠移到解決方案資源管理器中項目“MyWCFService”上並右擊滑鼠,彈出上下文菜單,在菜單中選中“發佈”後,彈出下圖所示的“發佈 WCF服務”對話框,如下圖所示:

在目標位置選擇“D:\WCF”,其他按預設,點擊“發佈”按鈕,即可在“D:\WCF”文件夾里生成如下圖所示的文件:

四、新建一個WCF服務網站

1、點擊打開IIS,新建一個網站,網站名稱設置為“MyWCFService”,物理地址選擇“D:\WCF”,埠從預設的80改為81,如下圖所示:

2、點擊確定後,即新建一個WCF服務網站,我們可以在瀏覽器輸入“http://localhost:81/MyWCFService.MyWCFService.svc”進行驗證,如下圖所示:

五、新建一個控制台客戶端測試WCF服務

1、在原來的解決方案里新建一個項目名為“WCFTestClient”的控制台程式,如下圖所示:

2、滑鼠右鍵點擊項目“WCFTestClient”,在彈出的上下文菜單中選擇“設為啟動項目”,如下圖所示:

3、滑鼠右鍵點擊項目“WCFTestClient”子節點“引用”,在彈出的上下文菜單中選擇“添加服務引用”,如下圖所示:

4、將彈出“添加服務引用”對話框,在“地址”輸入剛剛建的WCF服務網站地址(http://localhost:81/MyWCFService.MyWCFService.svc),點擊“轉到”按鈕之後,將會在“服務”列表裡列出剛纔建的服務,選擇“IMyWCFService”後,將會在“操作”列表裡列出GetData、GetDataUsingDataContract方法,如下圖所示:

5、將命名空間改為“MyWCFReference”後點擊“確定”按鈕之後,將會在項目“WCFTestClient”子節點增加“Service References”等,如下圖所示:

6、在Program類上方添加對WCF服務引用,併在Main主函數里輸入以下代碼:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WCFTestClient.MyWCFReference;

namespace WCFTestClient
{
    class Program
    {
        static void Main(string[] args)
        {
            MyWCFServiceClient client = new MyWCFServiceClient();
            Console.WriteLine(client.GetData(123456));
            CompositeType cType = new CompositeType() { StringValue = "Hello World!", BoolValue = true };
            Console.WriteLine(client.GetDataUsingDataContract(cType).StringValue);
        }
    }
}

六、運行客戶端控制台程式

運行“WCFTestClient”客戶端控制台程式,如下圖所示:


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Win7 U盤安裝Ubuntu16.04 雙系統詳細教程 安裝主要分為以下幾步: 一. 下載Ubuntu 16.04鏡像軟體; 二. 製作U盤啟動盤使用ultraISO; 三. 安裝Ubuntu系統; 四. 用EasyBCD 創建啟動系統啟動引導; (根據個人情況,選擇性的安裝) 五. 開啟系統; ...
  • 5. 獲取進程名、進程號以及用戶 ID 查看埠和連接的信息時,能查看到它們對應的進程名和進程號對系統管理員來說是非常有幫助的。舉個慄子,Apache 的 httpd 服務開啟80埠,如果你要查看 http 服務是否已經啟動,或者 http 服務是由 apache 還是 nginx 啟動的,這時候 ...
  • 介紹什麼的就免了.直接進入正題 平臺: Windows 10 IDE : Visual studio 2017 首先從官網下載最新的SDK,https://sciter.com/download/ 創建流程. https://sciter.com/forums/topic/simple-questi ...
  • 解決網卡無法自動獲取IP址的方法 為了省錢或者一戶多機,很多人都購買寬頻路由器共用上網。在架設路由上網的時候,有些“師傅”可能不懂或是偷懶,開啟了寬頻路由器的DHCP( Dynamic Host Configuration Protocol(動態主機分配協議))功能,這樣,其他機子只要設置“自動獲取 ...
  • 背水一戰 Windows 10 之 控制項(集合類 - ListViewBase): ListView, GridView ...
  • 因為這個解法有點複雜,因此單獨開一貼介紹。《演算法(第四版)》中的題目是這樣的:1.3.49棧與隊列。用有限個棧實現一個隊列,保證每個隊列操作(在最壞情況下)都只需要常數次的棧操作。那麼這裡就使用六個棧來解決這個問題。這個演算法來自於這篇論文。原文里用的是 Pure Lisp,不過語法很簡單,還是很容易... ...
  • 一、摘要 1.1、為什麼叫本次的分享課叫《修煉手冊》? 阿笨希望本次的分享課中涉及覆蓋的一些小技巧、小技能給您帶來一些幫助。希望您在日後工作中把它作為一本實際技能手冊進行儲備,以備不時之需,一旦當手頭遇到與Dapper修煉手冊中相似用法的地方和場景,可以直接拿來進行翻閱並靈活的運用到項目中。最後阿笨 ...
  • 1 文件夾/文件 檢查、新增、複製、移動、刪除,2 文件讀寫,記錄文本日誌/讀取配置文件3 三種序列化器4 xml和json1.文件夾/文件 檢查、新增、複製、移動、刪除,2 文件讀寫,記錄文本日誌/讀取配置文件 日誌方法 3 三種序列化器 在序列化類之前先用 [Serializable] //必須 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...