C#之VS2010開發Web Service


一:創建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必須是你下面定義的類名,如果用其它類名則會有錯誤

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM