一、開發環境
操作系統: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”接口:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
// 注意: 使用“重構”菜單上的“重命名”命令,可以同時更改代碼和配置文件中的接口名“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”類:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
// 注意: 使用“重構”菜單上的“重命名”命令,可以同時更改代碼和配置文件中的類名“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主函數里輸入以下代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
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”客戶端控制臺程序,如下圖所示:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:http://www.cnblogs.com/cncc/archive/2017/07/12/7156300.html