wcf服務是什么,WCF初識筆記

 2023-10-18 阅读 23 评论 0

摘要:? 此篇文章部分是從大佬http://www.cnblogs.com/iamlilinfeng/archive/2012/09/25/2700049.html這里復制來的,首先使大家對wcf有一個初步的印象,然后根據具體內容,進行深入分析。 ? 一、概述 ?   Windows Communication Foundation(WCF)是由微軟發展的

? 此篇文章部分是從大佬http://www.cnblogs.com/iamlilinfeng/archive/2012/09/25/2700049.html這里復制來的,首先使大家對wcf有一個初步的印象,然后根據具體內容,進行深入分析。

?

一、概述

?

  Windows Communication Foundation(WCF)是由微軟發展的一組數據通信的應用程序開發接口,可以翻譯為Windows通訊接口,它是.NET框架的一部分。由 .NET Framework 3.0 開始引入。

wcf服務是什么。?

  WCF的最終目標是通過進程或不同的系統、通過本地網絡或是通過Internet收發客戶和服務之間的消息。

?

  WCF合并了Web服務、.net Remoting、消息隊列和Enterprise Services的功能并集成在Visual Studio中。

?

  WCF專門用于面向服務開發。

cf攻略技巧、?

二、基于Asp.net 的應用程序開發與面向服務開發

?

wcf

?

  在基于Asp.net 的應用程序開發中,我們由客戶機的瀏覽器訪問應用程序服務器,然后通過應用程序服務器中的數據庫連接去連接數據庫服務器,讀取或是操作數據,有時候可能會多一個文件服務器。大家可以觀察到,基本上所有的應用都放在了一臺服務器上,但對于一個,由于業務上的需要(如:與外部系統交互),一臺服務器很難支持所有的應用。我們再看下面的圖:

cf一些基本知識,?

wcf

?

  客戶機使用瀏覽器訪問服務器A,服務器A為了業務需要與其他各種應用部署在服務器B、C、D....再通過WCF技術互相通信,相互訪問...然而面向服務的好處不僅僅在此,他還提供了不同語言不同操作系統的可交互性..

????

?

cfm攻略、???? 三、wcf寄宿

???? wcf程序需要寄宿到其他應用程序上運行。比如,我有一個控制臺程序,我的wcf服務寄宿在這個控制臺程序上,當我的控制臺程序未啟動時,我的WCF服務是無法啟動的。當我控制臺程序處于運行狀態時,我的WCF服務才能運行。wcf的寄宿方式有很多種,

比如寄宿到IIS,寄宿到WINDOWS服務,寄宿到控制臺程序等等。不過這些寄宿的方式和原理基本是一致的,可能IIS寄宿稍微有點不同,但大體是一致的,后續會跟大家詳細講解

???

???? 四、寄宿于IIS的簡單WCF服務

??????? 首先創建一個wcf應用程序。

wcf金點標準,?????????????????????????????????????????????????????????????????????

?

??????? ?我們看到這里生成了幾個文件,這幾個文件有什么作用呢?首先看到有個.SVC文件,我們知道,每一個ASP.NET Web服務都具有一個.asmx文本文件,客戶端通過訪問.asmx文件實現對相應Web服務的調用。與之類似,每個WCF服務也具有一個對應的文本文件,其文件擴展名為.svc。基于IIS的服務寄宿要求相應的WCF服務具有相應的.svc文件,.svc文件部署于IIS站點中,對WCF服務的調用體現在對.svc文件的訪問上。換句話說,因為我們的服務會寄宿在IIS上,IIS通過訪問這個SVC文件,來找到你相應的服務信息,供客戶端調用。這里就不貼圖了,大家可以自己在自己的工程里看。

? 創建一個wcf服務需要幾個步驟,

?1.創建服務契約

?2.實現服務內容

wcf文斯莫克。?3.創建服務宿主

?4.客戶端調用服務

?

???????????????????????????????????????????????????????????????????????????????????????????? ???

?????? 首先我們來把IService1.cs和Service1.svc.cs這兩個文件里命名空間中的內容全部刪除,然后,我們自己手寫一下。1.我們看到這個服務契約,其實實際上除了加了兩個特性【servicecontract】和【operationcontract】和普通的接口沒啥區別。2.我們看到實現這個服務內容,跟普通的寫方法沒區別。3.我們打開.SVC文件,將其指令內容改成與我們現在服務相匹配的,讓IIS能獲取服務相關的信息,完成寄宿。4.服務調用,我們先把.SVC文件設置為起始頁,然后按F5看一下。

?

dnf出血紋章。???????????????????????????????????????????????????????????????????????????????????????????????

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? (1)

?

?

??????????????????????????????????????????????????????????????????????????????????????????????

?

??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? (2)

?

???????????????????????????????????????????????????????????????????????????????????????????????????????????????

?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? (3)??

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? (4)

?????????????????通過WCF客戶端測試工具,我們發現我們服務端的WCF已經編寫好了可以調用了。那么我們客戶端怎么處理呢?既然我們之前說寄宿程序要一直運行,WCF才能被調用。那么我們現在就把之前寫好的WCF服務端發布到IIS,這樣IIS就是宿主,我們的WCF程序就寄宿到IIS上了。發布后點擊SVC文件,再點擊svcutil.exe 旁的鏈接,出現一個很多的XML的頁面。這些xml節點好像是叫做元數據,忘了。那么這些節點有什么用呢?其實他們是我們剛寫的那個WCF服務的元數據信息,類似于這整個服務的一種描述吧。WCF是通過soap通信的,但soap是個什么東西呢?跟這個XML有關,后續再相信跟大家解釋。

?????????????????????????????????????????????????????????????????????????????????????????????

?

?

?????????????????????????????????????????????????????????????????????????????????????????????????????????????? ?

????????????????出現XML頁面證明你的服務已經發布成功了,下面我們創建一個控制臺應用程序,然后在這個程序里點擊添加服務引用,輸入的地址就是這個XML頁面的地址。然后點擊轉到,這里命名空間,想改就改,不想改也無所謂。

??????????????????????????????????????????????????????????????????????????????????????????????????????????????

????? ?? 然后我們編寫代碼,然后就可以調用這個服務了。我們看到我們引用服務后,在這個ServiceReveerence1的命名空間下,VS幫我們自動創建了一個服務客戶端。其實這個客戶端的本質是一個繼承自ClientBase的服務調用代理對象。而ClientBase本質上也是通過channel來進行通信調用的。

下一章,我們的自我寄宿中將講到這部分內容,而且客戶端的調用將也會自己手寫。

       static void Main(string[] args){ServiceReference1.PersonClient Gy = new ServiceReference1.PersonClient();Console.WriteLine(Gy.sayHello("Gy", 23));Console.ReadKey();}

運行結果:

?????????????????????????????????

?? 原本寫了一半沒保存,又寫了一遍,頭皮發麻啊,如果大家打算深入學習這些,可以參考大佬artech: http://www.cnblogs.com/artech/archive/2007/09/15/893838.html,或者這個攜程大牛,色情博主的博客:http://www.cnblogs.com/huangxincheng/p/4573556.html。看了下他們的博客,真的倍受打擊,感覺自己小菜鳥,而且真的受益匪淺。

?

?

?

?

?

?

?

?

??????????????????????????????????????????????????????????????????????????????????????????

???

?

轉載于:https://www.cnblogs.com/rodean/p/8409257.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/150093.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息