C#創(chuàng)建WCF服務控制臺應用程序詳解
一、開發(fā)環(huán)境
操作系統(tǒng):Windows 10
開發(fā)環(huán)境:VS2015
編程語言:C#
IIS版本:10.0.0.0
二、添加WCF服務、Internet Information Services(IIS)
1、進入“控制面板”,打開“程序和功能”,點擊左上角的“啟用或關閉Windows功能”后,在“.NET Framework 4.6 高級服務”中的子節(jié)點選中“WCF 服務”,如下圖所示:
2、再找到“Internet Information Services”,同樣選中該節(jié)點,如下圖所示:
3、點擊“確定”按鈕以便安裝這些服務與組件,等待完成安裝即可。
三、新建一個WCF服務庫
1、使用VS2015新建一個WCF服務庫,并將項目名稱改為“MyWCFService”,如下圖所示:
2、在解決方案資源管理器里將“IService1”接口、“Service1”類分別重命名為“IMyWCFService”與“MyWCFService”,如下圖所示:
VS2015將會分別創(chuàng)建“IService1”接口、“Service1”類,“IService1”接口含GetData、GetDataUsingDataContract方法,并使用“Service1”類實現(xiàn)了該接口,代碼如下:
“IService1”接口:
// 注意: 使用“重構”菜單上的“重命名”命令,可以同時更改代碼和配置文件中的接口名“IMyWCFService”。
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value);
[OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite);
// TODO: 在此添加您的服務操作
}
// 使用下面示例中說明的數(shù)據(jù)約定將復合類型添加到服務操作。
[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”上并右擊鼠標,彈出上下文菜單,在菜單中選中“發(fā)布”后,彈出下圖所示的“發(fā)布 WCF服務”對話框,如下圖所示:
在目標位置選擇“D:\WCF”,其他按默認,點擊“發(fā)布”按鈕,即可在“D:\WCF”文件夾里生成如下圖所示的文件:
四、新建一個WCF服務網(wǎng)站
1、點擊打開IIS,新建一個網(wǎng)站,網(wǎng)站名稱設置為“MyWCFService”,物理地址選擇“D:\WCF”,端口從默認的80改為81,如下圖所示:
2、點擊確定后,即新建一個WCF服務網(wǎng)站,我們可以在瀏覽器輸入“http://localhost:81/MyWCFService.MyWCFService.svc”進行驗證,如下圖所示:
五、新建一個控制臺客戶端測試WCF服務
1、在原來的解決方案里新建一個項目名為“WCFTestClient”的控制臺程序,如下圖所示:
2、鼠標右鍵點擊項目“WCFTestClient”,在彈出的上下文菜單中選擇“設為啟動項目”,如下圖所示:
3、鼠標右鍵點擊項目“WCFTestClient”子節(jié)點“引用”,在彈出的上下文菜單中選擇“添加服務引用”,如下圖所示:
4、將彈出“添加服務引用”對話框,在“地址”輸入剛剛建的WCF服務網(wǎng)站地址(http://localhost:81/MyWCFService.MyWCFService.svc),點擊“轉(zhuǎn)到”按鈕之后,將會在“服務”列表里列出剛才建的服務,選擇“IMyWCFService”后,將會在“操作”列表里列出GetData、GetDataUsingDataContract方法,如下圖所示:
5、將命名空間改為“MyWCFReference”后點擊“確定”按鈕之后,將會在項目“WCFTestClient”子節(jié)點增加“Service References”等,如下圖所示:
6、在Program類上方添加對WCF服務引用,并在Main主函數(shù)里輸入以下代碼:
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”客戶端控制臺程序,如下圖所示:
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持我們。
上一篇:C#使用Http Post方式傳遞Json數(shù)據(jù)字符串調(diào)用Web Service
欄 目:C#教程
本文標題:C#創(chuàng)建WCF服務控制臺應用程序詳解
本文地址:http://www.jygsgssxh.com/a1/C_jiaocheng/5563.html
您可能感興趣的文章
- 01-10winform實現(xiàn)創(chuàng)建最前端窗體的方法
- 01-10C#動態(tài)創(chuàng)建button的方法
- 01-10C#使用windows服務開啟應用程序的方法
- 01-10深入淺出23種設計模式
- 01-10winform創(chuàng)建不規(guī)則窗體的方法
- 01-10C#動態(tài)創(chuàng)建Access數(shù)據(jù)庫及密碼的方法
- 01-10C#實現(xiàn)在啟動目錄創(chuàng)建快捷方式的方法
- 01-10C#創(chuàng)建不規(guī)則窗體的4種方式詳解
- 01-10分享WCF聊天程序--WCFChat實現(xiàn)代碼
- 01-10分享WCF文件傳輸實現(xiàn)方法---WCFFileTransfer


閱讀排行
本欄相關
- 01-10C#通過反射獲取當前工程中所有窗體并
- 01-10關于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實現(xiàn)txt定位指定行完整實例
- 01-10WinForm實現(xiàn)仿視頻播放器左下角滾動新
- 01-10C#停止線程的方法
- 01-10C#實現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實現(xiàn)讀取注冊表監(jiān)控當前操作系統(tǒng)已
隨機閱讀
- 04-02jquery與jsp,用jquery
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-10delphi制作wav文件的方法
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10C#中split用法實例總結
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05DEDE織夢data目錄下的sessions文件夾有什


