一:創建web service
vs2010軟件默認的framework是4.0版本,所以想創建web服務的時候壓根看不到web服務應用程序。網上有人說vs2010的web service
跟wcf合並了,變成了wcf web service。我創建了一個wcf web serivce項目看了一下發現,這個項目主要還是wcf的,但是不想要
它而只想要web service怎么辦呢?可以在創建新項目的時候把framework的版本設置成2.0,3.0或者3.5。
如圖創建,單擊確定
下面是默認的代碼,可以實現調用接口,打印出“Hello World”,下面還有瀏覽器打開的界面
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace WebService1 { /// <summary> /// Service1 的摘要說明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // 若要允許使用 ASP.NET AJAX 從腳本中調用此 Web 服務,請取消對下行的注釋。 // [System.Web.Script.Services.ScriptService] public class Service1 : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } }
單擊”HelloWorld"調用接口,轉到下面的界面:
再點擊“調用”按鈕,就可以看到用XML格式返回的Web Service結果下圖。說明我們的Web Service環境沒有問題,而且還初步接觸了一下最簡單的Web Service。
二:自己寫一個WebService,計算加減乘除
在代碼文件里,如果我們寫了一個函數后,希望此函數成為外部可調用的接口函數,我們必須在函數上面添上一行代碼[WebMethod(Description="函數的描述信息")],如果你的函數沒有這個申明,它將不能被用戶引用.下來我們開始編寫一個簡單的Web Service 的例子。
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace WebService1 { [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class Service : System.Web.Services.WebService { public Service() { //如果使用設計的組件,請取消注釋以下行 //InitializeComponent(); } //[WebMethod] //public string HelloWorld() { // return "Hello World"; //} [WebMethod(Description = "求和的方法")] public double addition(double i, double j) { return i + j; } [WebMethod(Description = "求差的方法")] public double subtract(double i, double j) { return i - j; } [WebMethod(Description = "求積的方法")] public double multiplication(double i, double j) { return i * j; } [WebMethod(Description = "求商的方法")] public double division(double i, double j) { if (j != 0) return i / j; else return 0; } } }
運行的截圖:
同樣點擊addition方法,進入addition方法的調用頁。
在參數上面輸入參數i=6,j=5,如上圖,點擊調用,就可以看到用XML格式返回的Web Service結果(i與j相加的結果)下圖
到這里,我們會發現,其實webservice並不是那么的神秘,它也不過只是個接口,對我們而言,側重點就是是接口函數的編寫.
三:其中的報錯
錯誤原因及解決
錯誤原因,默認WebServise的類的類名是Service1,下面實例化時需要實例化這個類,如果不是就會報錯
請注意<%@ WebService Language="C#" CodeBehind="~/App_Code/Service.cs" Class="Service" % >
里的Class="Service1",則Service1必須是你下面定義的類名,如果用其它類名則會有錯誤