日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

WCF服务开发与调用的完整示例

發(fā)布時(shí)間:2023/12/19 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WCF服务开发与调用的完整示例 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第一步、建立WCF服務(wù)庫(kù)

點(diǎn)擊確定,將建立一個(gè)WCF 服務(wù)庫(kù)示例程序,自動(dòng)生成一個(gè)包括IService1.cs和Service1.cs兩個(gè)類文件。我們可以直接對(duì)其修改開發(fā)我們的服務(wù),但一般直接刪除。

?

第二步:開發(fā)實(shí)體類

在解決方案中,添加新類Module.cs

在類中要首先引入using System.Runtime.Serialization命名空間

實(shí)體類具體代碼如下:

1 namespace WcfServiceLib.model 2 { 3 4 /// <summary> 5 6 /// 模塊實(shí)體 7 8 /// </summary> 9 10 [DataContract] 11 12 class Module 13 14 { 15 [DataMember] 16 public string ModuleNO; 17 [DataMember] 18 public string ModuleName; 19 } 20 }

為使在WCF服務(wù)被調(diào)用過(guò)程中科被序列化,在實(shí)體類前加[DataContract]標(biāo)簽,實(shí)體類每個(gè)成員前加[DataMember]標(biāo)簽

?

第三步:創(chuàng)建WCF服務(wù)接口

WCF服務(wù)要對(duì)外提供服務(wù),需要?jiǎng)?chuàng)建服務(wù)的接口,聲明對(duì)外服務(wù)的內(nèi)容。

在解決方案中添加新的接口類imoduleservice.cs,然后引入名門空間using System.ServiceModel;

具體代碼如下:

1 using System;2 using System.Collections.Generic;3 using System.Linq; using System.Text;4 using System.ServiceModel;5 using WcfServiceLib.model;6 7 namespace WcfServiceLib.iservice {8 /// <summary>9 /// 接口類 10 /// </summary> 11 [ServiceContract] 12 public interface imoduleservice 13 { 14 [OperationContract] 15 void AddModules(Module book); 16 17 [OperationContract] 18 Module GetModuleByID(string id); 19 20 [OperationContract] 21 void RemoveModule(string id); 22 23 [OperationContract] 24 void ModuleUpdate(Module book); 25 } 26 } WcfServiceLib.iservice

接口類前要加[ServiceContract]標(biāo)簽,每個(gè)成員前要加[OperationContract]標(biāo)簽,標(biāo)簽的作用是保證外部調(diào)用可以訪問(wèn)到該方法。

?

第四步:接口類的實(shí)現(xiàn)

實(shí)現(xiàn)第三步中聲明的接口類,只有這樣WCF服務(wù)才會(huì)正在提供服務(wù)。

在解決方案中添加接口實(shí)現(xiàn)類moduleservice,引入名稱空間using System.ServiceModel;

具體代碼如下:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using WcfServiceLib.iservice; using System.ServiceModel; using WcfServiceLib.model;namespace WcfServiceLib.service { /// <summary> /// 接口類實(shí)現(xiàn) /// </summary> [ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] class moduleservice : imoduleservice { #region imoduleservice 成員 List<Module> _Modules = new List<Module>();public void AddModules(Module m) { m.ModuleNO = Guid.NewGuid().ToString(); _Modules.Add(m); }public Module GetModuleByID(string id) { Module m = _Modules.Find(p => p.ModuleNO == id); return m; }public void RemoveModule(string id) { Module m = _Modules.Find(p => p.ModuleNO == id); _Modules.Remove(m); }public void ModuleUpdate(Module module) { Module m = _Modules.Find(p => p.ModuleNO == module.ModuleNO); m.ModuleName = module.ModuleName; }#endregion } } WcfServiceLib.model

到此為止,WCF服務(wù)的主體就開發(fā)完成了,那么如何才可以讓調(diào)用者使用這個(gè)服務(wù)呢?我們就需要吧WCF服務(wù)注冊(cè)并發(fā)布一下。

?

第五步:WCF服務(wù)發(fā)布

在VS2008以上的版本中都提供了對(duì)WCF服務(wù)可視化注冊(cè)和發(fā)布的工具。

出現(xiàn)如下界面:

可以看到有兩個(gè)終結(jié)點(diǎn),第一個(gè)是服務(wù)節(jié)點(diǎn),第二個(gè)是元數(shù)據(jù)節(jié)點(diǎn)。由于我們是用VS自帶的服務(wù)庫(kù)項(xiàng)目來(lái)創(chuàng)建的,配置文件中還沒(méi)有刪除這些信息,所以第一個(gè)節(jié)點(diǎn)里還保留著自帶的服務(wù)信息Iservice.下面我們把這個(gè)服務(wù)更改為我們上文編寫的服務(wù)的信息。

單擊左側(cè)的“Services”-“Services.Service1”在右側(cè)的Name,彈出“服務(wù)類型瀏覽器”對(duì)話框,在此類型中我們找到此WCF服務(wù)項(xiàng)目編譯出來(lái)的dll文件,雙擊它就可以出現(xiàn)此服務(wù)中的對(duì)外公布的服務(wù),點(diǎn)擊選中它單擊確定。

然后,我們展開左側(cè)“Services”->“WcfServiceLib.service.moduleservice”->“Endpoints”,單擊第一個(gè)“Empty Name”,從右邊的“EmptyProperties”中的Contract中我們可以看到,這里的Contract仍然用的是Services.IService1。按照上文的步驟在走一遍,找到DLL后確定。

最后關(guān)閉配置窗口,保存。

到此為止,服務(wù)就開發(fā)并發(fā)布完成了。接下來(lái)我們將WCF進(jìn)行托管后就可以使用了。WCF服務(wù)托管有三種方式,最常用的是IIS托管。我們看一下WCF服務(wù)是如何進(jìn)行IIS托管的。

?

第六步:WCF服務(wù)IIS發(fā)布

1、在解決方案上右鍵添加網(wǎng)站,類型選擇WCF服務(wù)。

2、建立起來(lái)的新的WCF服務(wù)站點(diǎn)中在App_Code文件中自動(dòng)為我們生成兩個(gè)類文件:IService.cs和Service.cs。這兩個(gè)文件對(duì)我們來(lái)說(shuō)沒(méi)有用,我們刪掉。

3、然后添加對(duì)WCF服務(wù)庫(kù)項(xiàng)目的引用。結(jié)果如下:

4、然后修改Service.svc文件,代碼如下:

<%@ ServiceHost Language="C#" Debug="true" Service="WcfServiceLib.service.moduleservice" %>

5、在web.config上右擊選擇“編輯WCF配置”。

關(guān)閉WCF編輯工具,保存即完成了服務(wù)的發(fā)布配置。

6、在Service.svc上右擊,選擇“在瀏覽器中查看”,在IE中運(yùn)行此服務(wù)。

7、在IIS中部署站點(diǎn),建立虛擬目錄指向該站點(diǎn)。然后瀏覽界面如下。

到此,WCF服務(wù)在IIS中托管成功。接下來(lái),我們看一下如何使用WCF服務(wù)。

?

第七步:WCF服務(wù)的使用

1、新建Asp.net應(yīng)用程序

2、右鍵點(diǎn)擊“引用”--->添加服務(wù)引用

添加成功后,解決方案中文件如下:

3、后臺(tái)調(diào)用WCF服務(wù),代碼如下:

1 protected void Page_Load(object sender, EventArgs e) 2 { 3 if (!IsPostBack) 4 { 5 ServiceReference1.imoduleserviceClient c = new WCF_Cilent.ServiceReference1.imoduleserviceClient(); 6 c.AddModules(new WCF_Cilent.ServiceReference1.Module()); 7 8 if (c.GetAllModule().Length > 0) 9 { 10 Response.Write(c.GetAllModule()[0].ModuleNO.ToString()); 11 Response.End(); 12 } 13 } 14 }

?

4、運(yùn)行程序,出現(xiàn)如下調(diào)用結(jié)果,調(diào)用成功。

轉(zhuǎn)載于:https://www.cnblogs.com/powerzhang/p/3174822.html

總結(jié)

以上是生活随笔為你收集整理的WCF服务开发与调用的完整示例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。