日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

WebService 的创建,部署和使用

發布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 WebService 的创建,部署和使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

WebService,即Web服務,能使得運行在不同機器上的不同應用無須借助,專門的第三方軟件或硬件,就可相互交換數據或集成.

?? 第一次選擇WebService,是為了替代數據庫遠程連接.我們都知道當SQL允許遠程時,則要打開某一端口.但這一點在我們已經部署好的服務器上,卻是不被允許的,于是就選擇WebService來代替了.當然現在我們也可以選擇WCF來完成.不過這不是我們今天的主題.

?? WebService返回的數據為XML,這是我們都很熟悉的一種數據方式,大大方便了我們的工作當然,WebService給我們帶來的好處遠不止這些.我不想講得更多.相信當你能夠熟練運用WebService后,你會發現這是一把鋒利的寶刃.

?? 對于初次接觸WebServcie的人來說,長篇理論,不如一個實例來得更實際些,我們更看重的是到底如何能夠創建一個WebService并且將其部署,和使用.

?? 下面我將逐步的完成一個加減乘除功能的WebServic.

?? 開發環境:VS2012

?? IIS環境:WINSERVER2008R2 IIS7.5

?? 第一步:打開VS2012,新建空項目,注意選擇.NET Framework的版本.這里我選擇的是.NET Framework 4

????

? 新建好項目后,在項目中添加一個WebService項

打開這個文件,我們可以看到,代碼如下

[csharp] view plaincopyprint?
  • using System;?
  • using System.Collections.Generic;?
  • using System.Linq;?
  • using System.Web;?
  • using System.Web.Services;?
  • ?
  • namespace CalculateService?
  • {?
  • ??? /// <summary>?
  • ??? /// WebService1 的摘要說明?
  • ??? /// </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 CalCulService : System.Web.Services.WebService?
  • ??? {?
  • ?
  • ??????? [WebMethod]?
  • ??????? public string HelloWorld()?
  • ??????? {?
  • ??????????? return "Hello World";?
  • ??????? }?
  • ??? }?
  • }?
  • using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services;namespace CalculateService {/// <summary>/// WebService1 的摘要說明/// </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 CalCulService : System.Web.Services.WebService{[WebMethod]public string HelloWorld(){return "Hello World";}} }

    將HellowWorld這段代碼刪除,修改后如下

    [csharp] view plaincopyprint?
  • using System;?
  • using System.Collections.Generic;?
  • using System.Linq;?
  • using System.Web;?
  • using System.Web.Services;?
  • ?
  • namespace CalculateService?
  • {?
  • ??? /// <summary>?
  • ??? /// CalCulService 的摘要說明?
  • ??? /// </summary>?
  • ??? [WebService(Namespace = "http://login.wxjy.info")]?
  • ??? [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]?
  • ??? [System.ComponentModel.ToolboxItem(false)]?
  • ??? // 若要允許使用 ASP.NET AJAX 從腳本中調用此 Web 服務,請取消注釋以下行。 ?
  • ??? // [System.Web.Script.Services.ScriptService]?
  • ??? public class CalCulService : System.Web.Services.WebService?
  • ??? {???????
  • ??????? [WebMethod]?
  • ??????? public int Sum(int a, int b)?
  • ??????? {?
  • ??????????? return a + b;?
  • ??????? }?
  • ?
  • ??????? [WebMethod]?
  • ??????? public int Sub(int a, int b)?
  • ??????? {?
  • ??????????? return a - b;?
  • ??????? }?
  • ?
  • ??????? [WebMethod]?
  • ??????? public double Mult(double a, double b)?
  • ??????? {?
  • ??????????? return a * b;?
  • ??????? }?
  • ?
  • ??????? [WebMethod]?
  • ??????? public double Div(double a, double b)?
  • ??????? {?
  • ??????????? return a / b;?
  • ??????? }?
  • ??? }?
  • }?
  • using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services;namespace CalculateService {/// <summary>/// CalCulService 的摘要說明/// </summary>[WebService(Namespace = "http://login.wxjy.info")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)][System.ComponentModel.ToolboxItem(false)]// 若要允許使用 ASP.NET AJAX 從腳本中調用此 Web 服務,請取消注釋以下行。 // [System.Web.Script.Services.ScriptService]public class CalCulService : System.Web.Services.WebService{ [WebMethod]public int Sum(int a, int b){return a + b;}[WebMethod]public int Sub(int a, int b){return a - b;}[WebMethod]public double Mult(double a, double b){return a * b;}[WebMethod]public double Div(double a, double b){return a / b;}} }

    此時,我們已經完成這個WebService的代碼部分.接下來我們要將這個WebService打包發布

    在項目上點擊右鍵,點擊菜單中的發布

    此時出現如下頁面

    點擊下拉菜單選擇新建配置文件

    ?

    完成以上步驟后,我們可以在設置文件生成的文件夾內看到生成的以下文件

    ?

    現在我們要將生成的文件拷貝到已經部署好的IIS服務器上:在服務器上新建文件夾,將文件拷貝至文件夾內,并且為文件夾設置匿名權限.

    現在我們在IIS中添加網站

    ?

    需要注意的是:我們的這個WebService是基于.NET 4開發的.如果你的IIS默認使用的是.NET 2.0,那么發布后將會出現異常,而無法訪問.

    查看一下應用程序池的右邊的應用程序池默認設置

    ?

    提供兩種解決方案:第一種,在上面的表格中,將應用程序池默認改為4.0即可.當然這是指你的IIS中沒有需要2.0的應用程序和網站.

    如果你的IIS中還有其它的需要.NET 2.0的應用程序,這時候你可以選擇第二個辦法

    首先添加一個應用程序池

    然后添加網站,將網站的應用程序池改為新建的應用程序池

    ?

    當然,我們也可以將這個項目的.NET版本改為3.5,然后重新打包發布.那么就不需要添加對4.0的支持了.

    添加完畢,啟動網站,此時可以關閉與服務器的連接了.

    在本地的瀏覽器中輸入地址

    http://xxx.xxx.com/calculservice.asmx

    此時我們可以看到以下的界面

    此時我們已經完成了這個WebService的創建和部署.接下來,我們要在本地使用它

    打開VS2012,新建項目,項目名為TestCalCul

    ?

    在項目中添加新建項

    在項目中引用項上點擊右鍵,選擇添加服務引用,顯示界面如下:

    ?

    點擊左下角的高級,出現界面如下

    ?

    ?

    點擊添加Web引用,出現界面如下

    在URL中輸入我們發布的WebService的URL地址,系統會自動搜索到服務.并且為Web引用設置一個引用名.此引用名將是我們在項目中引用這個服務的命名空間

    ?

    點擊添加引用,引用完成.

    接下來,我們在WebForm1的cs文件中寫如下代碼

    ?

    [csharp] view plaincopyprint?
  • using System;?
  • using System.Collections.Generic;?
  • using System.Linq;?
  • using System.Web;?
  • using System.Web.UI;?
  • using System.Web.UI.WebControls;?
  • ?
  • //不要忘記為WebService添加using引用?
  • using TestCalCul.MyWebService;?
  • ?
  • namespace TestCalCul?
  • {?
  • ??? public partial class WebForm1 : System.Web.UI.Page?
  • ??? {?
  • ??????? protected void Page_Load(object sender, EventArgs e)?
  • ??????? {?
  • ??????????? CalCulService cal = new CalCulService();?
  • ??????????? double a = 29755;?
  • ??????????? double b = 112.58;?
  • ??????????? Response.Write(cal.Mult(a, b).ToString());?
  • ??????? }?
  • ??? }?
  • }?
  • using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls;//不要忘記為WebService添加using引用 using TestCalCul.MyWebService;namespace TestCalCul {public partial class WebForm1 : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){CalCulService cal = new CalCulService();double a = 29755;double b = 112.58;Response.Write(cal.Mult(a, b).ToString());}} }

    接下來,在瀏覽器中運行該項目.可以看到如下結果

    ?

    此時我們已經完成了這個WebService的使用過程

    ?

    其實,這個實例在開發中,沒有任何意義.

    但是通過這個實例,我們可以看出WebService的復用性,簡單性是非常好的.

    在VS的環境下,我們可以輕易完成一個WebService的開發過程.

    而WebService返回給我們的XML數據方式,也可以充分的和JavaScript等任何一種可以處理XML的語言相結合來

    完成我們的需求.

    在這里要注意,當WebService連接數據庫時,我們要適當的給WebService進行加密.

    加密的方式很多,你可以通過在IIS服務器上禁止匿名訪問來實現,也可以給WebService的驗證增加驗證內容,最

    簡單的就是加上用戶名和密碼.

    還要注意,不要用有含義的方法名稱,比如Login或者PayOrder等,回傳數據不要使用bool值,盡量使用字符串來替

    代,最好在字符串中加上干擾碼等.

    轉載于:https://www.cnblogs.com/Penfield/p/4762753.html

    總結

    以上是生活随笔為你收集整理的WebService 的创建,部署和使用的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。