web服务器(webservices)
webservices即Web Service, Web Service技术,是应用于第三方软件的,我们可以通过配置它,给第三方配置一个对外的可以调用的外部的一个 接口。在我们开发中是经常需要用到的重要的知识内容,所以在这里和大家探究一下它的主要用法:
1、web服务的页面都是以 .asmx结尾的.首先是在framework3.5版本以下,因为在4.0版本中微软是集成到wcf中。
2、.asmx是web服务的前台页面文件,会使用一个叫做.asmx.cs的文件来存放页面类文件,例如:getpig.asmx 会有一个对应的getpig.asmx.cs文件。
3、getpig.asmx.cs 中的内容说明:
3.1、所有web服务页面类一定要集成 System.Web.Services.WebService public class GetPig : System.Web.Services.WebService
3.2、要想使某个方法做为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); } } }
4、在一个web站点的项目中要想使用web服务必须按照以下步骤来执行:
4.1、在web站点的【引用】上右键点击 【添加服务引用】,这时VS 自动打开服务面板,输入你发布的web服务的地址(例如:http://127.0.0.1/GetPig.asmx)
后自动生成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.2、在web站点中调用web服务的写法:
先导入命名空间(查看方式在:网站项目的 Service References 下的代理对象中查看,例如演示项目中的命名空间为:WebSite.Webs) 比如要调用 http://192.168.10.2:8085/GetPig.asmx 中的方法 GetPigInfo 的写法:
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); } } }
本文出自 “数据库之家” 博客,请务必保留此出处http://6588779.blog.51cto.com/6578779/1358588