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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/19 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WCF服务开发与调用的完整示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

第一步、建立WCF服務庫

點擊確定,將建立一個WCF 服務庫示例程序,自動生成一個包括IService1.cs和Service1.cs兩個類文件。我們可以直接對其修改開發我們的服務,但一般直接刪除。

?

第二步:開發實體類

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

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

實體類具體代碼如下:

1 namespace WcfServiceLib.model 2 { 3 4 /// <summary> 5 6 /// 模塊實體 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服務被調用過程中科被序列化,在實體類前加[DataContract]標簽,實體類每個成員前加[DataMember]標簽

?

第三步:創建WCF服務接口

WCF服務要對外提供服務,需要創建服務的接口,聲明對外服務的內容。

在解決方案中添加新的接口類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]標簽,每個成員前要加[OperationContract]標簽,標簽的作用是保證外部調用可以訪問到該方法。

?

第四步:接口類的實現

實現第三步中聲明的接口類,只有這樣WCF服務才會正在提供服務。

在解決方案中添加接口實現類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> /// 接口類實現 /// </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服務的主體就開發完成了,那么如何才可以讓調用者使用這個服務呢?我們就需要吧WCF服務注冊并發布一下。

?

第五步:WCF服務發布

在VS2008以上的版本中都提供了對WCF服務可視化注冊和發布的工具。

出現如下界面:

可以看到有兩個終結點,第一個是服務節點,第二個是元數據節點。由于我們是用VS自帶的服務庫項目來創建的,配置文件中還沒有刪除這些信息,所以第一個節點里還保留著自帶的服務信息Iservice.下面我們把這個服務更改為我們上文編寫的服務的信息。

單擊左側的“Services”-“Services.Service1”在右側的Name,彈出“服務類型瀏覽器”對話框,在此類型中我們找到此WCF服務項目編譯出來的dll文件,雙擊它就可以出現此服務中的對外公布的服務,點擊選中它單擊確定。

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

最后關閉配置窗口,保存。

到此為止,服務就開發并發布完成了。接下來我們將WCF進行托管后就可以使用了。WCF服務托管有三種方式,最常用的是IIS托管。我們看一下WCF服務是如何進行IIS托管的。

?

第六步:WCF服務IIS發布

1、在解決方案上右鍵添加網站,類型選擇WCF服務。

2、建立起來的新的WCF服務站點中在App_Code文件中自動為我們生成兩個類文件:IService.cs和Service.cs。這兩個文件對我們來說沒有用,我們刪掉。

3、然后添加對WCF服務庫項目的引用。結果如下:

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

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

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

關閉WCF編輯工具,保存即完成了服務的發布配置。

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

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

到此,WCF服務在IIS中托管成功。接下來,我們看一下如何使用WCF服務。

?

第七步:WCF服務的使用

1、新建Asp.net應用程序

2、右鍵點擊“引用”--->添加服務引用

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

3、后臺調用WCF服務,代碼如下:

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、運行程序,出現如下調用結果,調用成功。

轉載于:https://www.cnblogs.com/powerzhang/p/3174822.html

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。