這篇文章主要為大家詳細介紹了.NET C# 建立WebService服務簡單一實例,具有一定的參考價值,感興趣的小夥伴們可以參考一下
Web service是一個基於可程式化的web的應用程式,用於開發分布式的互操作的應用程式,也是一種web服務
WebService的特性有以下幾點:
1.使用XML(標準通用標記語言 (SGML))來作為資料互動的格式。
2.跨平台性,因為使用XML所以只要本地應用可以串連網路解析XML就可以實現資料交換,比如安卓、IOS、WindowsPhone等都可以實現對Web service的資料互動。
3.基於HTTP協議,直接跨越防火牆,通用型強;
下面使用Visual Studio 2013(其他VS版本亦是如此)來建立一個簡單Web service服務。
一、開啟Visual Studio->檔案->建立->網站
二、之後選擇ASP.NET空網站,再點擊“確定”
三、建立網站後你會看到解決方案管理器中看到一個web.config,待會我們可以通過配置這個檔案來實現瀏覽器對WebService的遠程調用。
現在,右鍵解決方案中的項目名添加一個WebService項目。
四、之後,你可以在項目模版中找到Web服務(ASMX),添加它!
五、建立之後在APP_Code檔案夾中建立一個WebService.cs檔案
在網站根目錄下會同時建立一個WebService.asmx檔案
這兩個檔案中WebService.cs負責邏輯部分,WebService.asmx提供服務部分。將來引用WebService服務時將直接引用WebService.asmx檔案來調用WebService服務,服務的執行部分就是WebService.cs檔案
現在開啟WebService.cs檔案來編輯邏輯部分實行一個簡單的《用戶端調用web服務實現一個簡單的加法運算,並返回以字串給用戶端運算結果》
/* Web.Services.cs檔案*/using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services;/// <summary>/// WebService 的摘要說明/// </summary>[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]// 若要允許使用 ASP.NET AJAX 從指令碼中調用此 Web 服務,請取消注釋以下行。 // [System.Web.Script.Services.ScriptService]public class WebService : System.Web.Services.WebService { public WebService () { //如果使用設計的組件,請取消注釋以下行 //InitializeComponent(); } /// <summary> /// 方法上頭的[WebMethod]是聲明一個web服務方法,如果你想寫個方法能讓用戶端調用並返回結果就必須在方法上頭標註[WebMethod] /// 如果是只負責邏輯運算或私人方法,並不打算給用戶端結果,只給類方法內部調用就無需聲明[WebMethod] /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <returns>將運算結果轉換成字串返回</returns> [WebMethod] public string HelloWorld(int a, int b) { int result = a + b; return result.ToString(); } }
上面的代碼寫了一個基本的方法供遠程調用,將cs檔案儲存後,一個簡單的web服務就建立了!
下面我們啟動這個項目,用瀏覽器查看微軟為我們定義測試的調用頁面:
在這裡我們可以看到我們寫的Hello方法可以調用了,我們單擊進入這個方法進入調用調試頁面:
輸入參數,我們寫的是一個簡單的加法運算,參數便是我們寫的HelloWorld方法的參數a和b,我們輸入兩個整數點擊調用,出現如下結果:
下面是web服務返回的結果,其中133就是HelloWorld參數a+b返回的結果:
<?xml version="1.0" encoding="UTF-8"?><string xmlns="http://tempuri.org/">133</string>
到這裡,以後我們想要調用一個web服務就可以通過以上方式把用戶端從伺服器擷取資料,訪問:"主機名稱/web服務名.asmx"就可以調用了。
得到的資料是個XML,所以用戶端得到資料後需要用戶端解析XML檔案。
注意:以上建立在瀏覽器調用的web服務僅供本機電腦調試使用,需要配置web.config(之前提到過)才能實現遠程調用調試
如果不配置,在遠程調用會出現:測試表單只能用於來自本機電腦的請求解決 的問題。
如需遠程調用可以參考一下方法:
在網站的解決方案的下方找到web.config
開啟後添加如下配置即可:
<system.web> <webServices> <protocols> <add name="HttpGet"/> <add name="HttpPost"/> </protocols> </webServices> <system.web>