C# 創(chuàng)建、部署和調(diào)用WebService簡(jiǎn)單示例
webservice 可以用于分布式應(yīng)用程序之間的交互,和不同程序之間的交互。
概念性的東西就不說(shuō)太多,下面開(kāi)始創(chuàng)建一個(gè)簡(jiǎn)單的webservice的例子。這里我用的是Visual Studio 2015開(kāi)發(fā)工具。
首先創(chuàng)建一個(gè)空的Web應(yīng)用程序。
然后鼠標(biāo)右鍵點(diǎn)擊項(xiàng)目,選擇 添加>新建項(xiàng)。
選擇Web服務(wù),點(diǎn)擊添加。一個(gè)簡(jiǎn)單的webservice就創(chuàng)建完成了,接下來(lái)編寫(xiě)兩個(gè)簡(jiǎn)單的方法。
PS:如果方法需要通過(guò)webservice的地址進(jìn)行調(diào)用,那就必須在方法上面打上 [WebMethod] 的特性標(biāo)簽,否則是無(wú)法通過(guò)webservice訪問(wèn)到的。Description 是方法的描述。
然后運(yùn)行一下,就可以看到上圖的方法了,訪問(wèn) webservice 就可以根據(jù)地址欄里的地址進(jìn)行調(diào)用 webservice 的方法了。
但是這樣如何讓其他應(yīng)用程序通過(guò)網(wǎng)絡(luò)進(jìn)行訪問(wèn)呢?那就需要部署到服務(wù)器了。
下面的演示我是部署在本機(jī)的,不過(guò)服務(wù)器部署也是一樣的。網(wǎng)站部署需要用到 IIS,而我這里是已經(jīng)開(kāi)啟的,如果沒(méi)有開(kāi)啟的話,可以通過(guò) 開(kāi)始菜單 > 控制面板 > 程序 > 啟用或關(guān)閉 windows 功能 開(kāi)啟。具體的可以網(wǎng)上搜索一下,這里就不做過(guò)多的介紹。
開(kāi)啟 IIS 之后,先把剛才的 webservice 發(fā)布之后,然后打開(kāi) IIS 管理器。
選擇自定義,然后輸入配置文件名稱(chēng),然后點(diǎn)擊下一步。
然后選擇發(fā)布的方式和發(fā)布的路徑,然后點(diǎn)擊下一步。
設(shè)置不用改,繼續(xù)下一步。然后點(diǎn)擊發(fā)布。
這樣就發(fā)布完成了,現(xiàn)在打開(kāi) IIS 管理器,然后選擇網(wǎng)站,點(diǎn)擊添加網(wǎng)站。
輸入網(wǎng)站的名稱(chēng)、IP地址(本機(jī)可以不輸入IP地址)和端口,選擇文件的路徑,然后點(diǎn)擊確定,網(wǎng)站就創(chuàng)建完成了。
當(dāng)然,并不一定就立馬可以使用了,這之中會(huì)出現(xiàn)很多的錯(cuò)誤,下面是我碰到的一些錯(cuò)誤和一些解決方法。
這個(gè)錯(cuò)誤是因?yàn)槲募脑L問(wèn)權(quán)限不夠的問(wèn)題。解決方法就是點(diǎn)擊編輯權(quán)限。
然后選擇安全欄,點(diǎn)擊編輯。
然后點(diǎn)擊添加一個(gè)用戶,把權(quán)限設(shè)置為允許?;蛘呤褂孟旅孢@種方法:
選擇網(wǎng)站,然后選中身份驗(yàn)證,點(diǎn)擊基本設(shè)置。
選擇連接為。
然后選擇特定用戶,點(diǎn)擊設(shè)置,輸入本機(jī)的用戶名和密碼,點(diǎn)擊確定就可以了。然后可以點(diǎn)擊測(cè)試設(shè)置看看效果。
這個(gè)錯(cuò)誤的原因是在安裝Framework v4.0之后,再啟用IIS,導(dǎo)致Framework沒(méi)有完全安裝。
解決方法就是:開(kāi)始菜單 > 命令提示符(管理員),然后輸入并執(zhí)行 %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i 命令行。
這個(gè)問(wèn)題的是因?yàn)?,?yīng)用程序池設(shè)置的原因,開(kāi)始新建網(wǎng)站的時(shí)候沒(méi)有選擇應(yīng)用程序池,默認(rèn)為v2.0的版本,不支持 Framework 4.5。
解決方法就是選擇應(yīng)用程序池,然后改為v4.0的版本,管道模式設(shè)置為集成。
這個(gè)錯(cuò)誤的原因是由于系統(tǒng)目錄下的Temp目錄無(wú)相應(yīng)的權(quán)限所致。
解決方法就是進(jìn)入 C盤(pán) windows 目錄下的 Temp 目錄,右鍵屬性 > 安全欄 > 編輯 > IIS_IUSRS 的權(quán)限設(shè)置為完全控制。
這個(gè)錯(cuò)誤的原因是因?yàn)闆](méi)有配置網(wǎng)站的默認(rèn)文檔。
解決方法就是選中網(wǎng)站,點(diǎn)擊默認(rèn)文檔,然后添加一個(gè)默認(rèn)的頁(yè)面,即應(yīng)用程序的起始頁(yè)面。
然后,處理了眾多問(wèn)題之后,總算是部署成功了。
接下來(lái),就來(lái)個(gè)簡(jiǎn)單的 webservice 的調(diào)用示例。
先添加一個(gè)控制臺(tái)應(yīng)用程序,然后右鍵引用,選擇添加服務(wù)引用。
點(diǎn)擊高級(jí),然后在彈出來(lái)的頁(yè)面點(diǎn)擊 添加web引用。
在URL欄輸入部署的網(wǎng)站地址,然后點(diǎn)擊轉(zhuǎn)到,就可以看到下面的方法內(nèi)容了,然后輸入web引用名稱(chēng),點(diǎn)擊添加引用。
引用添加完成,下面就開(kāi)始調(diào)用webservice。
結(jié)果如下:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- C# 動(dòng)態(tài)調(diào)用WebService的示例
- C# 調(diào)用WebService的方法
- c# 三種方法調(diào)用WebService接口
- c#中WebService的介紹及調(diào)用方式小結(jié)
- C#調(diào)用WebService實(shí)例與開(kāi)發(fā)教程(推薦)
- C#創(chuàng)建、部署、調(diào)用WebService圖文實(shí)例詳解
- C#調(diào)用webservice接口的最新方法教程
- C#調(diào)用WebService實(shí)例開(kāi)發(fā)
- C#動(dòng)態(tài)webservice調(diào)用接口
- c#動(dòng)態(tài)調(diào)用Webservice的兩種方法實(shí)例
- C#調(diào)用WebService的方法介紹
相關(guān)文章
C#實(shí)現(xiàn)chart控件動(dòng)態(tài)曲線繪制
這篇文章主要為大家詳細(xì)介紹了C#實(shí)現(xiàn)chart控件動(dòng)態(tài)曲線繪制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02c#中值類(lèi)型和引用類(lèi)型的基礎(chǔ)教程
這篇文章主要給大家介紹了關(guān)于c#中值類(lèi)型和引用類(lèi)型的基礎(chǔ)教程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06C#中使用XmlDocument類(lèi)來(lái)創(chuàng)建和修改XML格式的數(shù)據(jù)文件
這篇文章主要介紹了C#中使用XmlDocument類(lèi)來(lái)創(chuàng)建和修改XML格式的數(shù)據(jù)文件的方法,XmlDocument類(lèi)被包含在.NET框架中,需要的朋友可以參考下2016-04-04c#擴(kuò)展datatable轉(zhuǎn)json示例
這篇文章主要介紹了c#擴(kuò)展datatable轉(zhuǎn)json示例,需要的朋友可以參考下2014-05-05C#中利用代理實(shí)現(xiàn)觀察者設(shè)計(jì)模式詳解
學(xué)習(xí)模式注重精髓而非模板,本文為了便于說(shuō)明假定了三方并對(duì)三方功能進(jìn)行了劃分,實(shí)際應(yīng)用并不拘泥于此。如果情況合適將數(shù)據(jù)(文檔)類(lèi)設(shè)計(jì)為單件模式也是一種很不錯(cuò)的選擇2014-01-01C#構(gòu)造函數(shù)在基類(lèi)和父類(lèi)中的執(zhí)行順序
這篇文章介紹了C#構(gòu)造函數(shù)在基類(lèi)和父類(lèi)中的執(zhí)行順序,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04C#中通過(guò)反射將枚舉元素加載到ComboBo的實(shí)現(xiàn)方法
本文主要介紹了C#中通過(guò)反射將枚舉元素加載到ComboBo的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09