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


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

 

一、開發環境

操作系統: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”客戶端控制台程序,如下圖所示:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM