web服務器(webservices)
webservices即Web Service, Web Service技術,是應用於第三方軟件的,咱們能夠經過配置它,給第三方配置一個對外的能夠調用的外部的一個 接口。在咱們開發中是常常須要用到的重要的知識內容,因此在這裏和你們探究一下它的主要用法:web
一、web服務的頁面都是以 .asmx結尾的.首先是在framework3.5版本如下,由於在4.0版本中微軟是集成到wcf中。服務器
二、.asmx是web服務的前臺頁面文件,會使用一個叫作.asmx.cs的文件來存放頁面類文件,例如:getpig.asmx 會有一個對應的getpig.asmx.cs文件。ide
三、getpig.asmx.cs 中的內容說明:
3.一、全部web服務頁面類必定要集成 System.Web.Services.WebService public class GetPig : System.Web.Services.WebService
3.二、要想使某個方法作爲web服務的方式暴露出去必定在此方法上添加: [WebMethod] 特性,這樣才能在其餘站點中訪問到,不然是做爲此web服務中的內部方法。
網站
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace Web服務 { /// <summary> /// Service1 的摘要說明 /// </summary> [WebService(Namespace = "http://itcast.cn/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // 若要容許使用 ASP.NET AJAX 從腳本中調用此 Web 服務,請取消註釋如下行。 // [System.Web.Script.Services.ScriptService] public class GetPig : System.Web.Services.WebService { [WebMethod] // 注意:在web服務器類中若是要使某個方法可以被外部調用則必定要加上 [WebMethod]特性 public string HelloWorld() { return "Hello World"; } [WebMethod] public Pig GetPigInfo(int age) { List<Pig> list = new List<Pig>() { new Pig(){ Name="豬豬",Age=2}, new Pig(){ Name="小豬",Age=1}, new Pig(){ Name="八戒",Age=500} }; return list.FirstOrDefault(c => c.Age == age); } } }
四、在一個web站點的項目中要想使用web服務必須按照如下步驟來執行:
4.一、在web站點的【引用】上右鍵點擊 【添加服務引用】,這時VS 自動打開服務面板,輸入你發佈的web服務的地址(例如:http://127.0.0.1/GetPig.asmx)
spa
後自動生成web服務對於的代理類,同時會向web站點的web.config中註冊 <system.serviceModel>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="GetPigSoap" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://192.168.10.2:8085/GetPig.asmx" //web服務的發佈地址
binding="basicHttpBinding" //web服務的綁定方式
bindingConfiguration="GetPigSoap" //web服務的配置類型名稱
contract="WbS.GetPigSoap" //web服務的契約
name="GetPigSoap" /> //web服務的名稱
</client>
</system.serviceModel>
4.二、在web站點中調用web服務的寫法:代理
先導入命名空間(查看方式在:網站項目的 Service References 下的代理對象中查看,例如演示項目中的命名空間爲:WebSite.Webs) 好比要調用 http://192.168.10.2:8085/GetPig.asmx 中的方法 GetPigInfo 的寫法:
orm
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace WebSite { //1.0 導入web服務器代理類的命名空間 using WebSite.WbS; using WebSite.WebsDog; public partial class index : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { GetDogInfoSoapClient client = new GetDogInfoSoapClient(); Dog dog = client.GetDog(); } protected void Button1_Click(object sender, EventArgs e) { GetPigSoapClient client = new GetPigSoapClient(); Pig pig = client.GetPigInfo(int.Parse(TextBox1.Text)); Response.Write(pig.Name + " ,Age=" + pig.Age); } } }