WebService

1 认识WebService

在 3,5 中新建一个服务应用程序

1 在asmx中
/// <summary>
/// Service1 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")] //标注web服务器的命名空间,将来可以修改成公司的域名
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] //表示web服务器的默认提供方式
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
// [System.Web.Script.Services.ScriptService]
//特点:1、继承WebService 2、上面三个特性标签必须添加
public class Service1 : System.Web.Services.WebService
{
[WebMethod] //标注当前方法可以被互联网的用户访问到
public string HelloWorld()
{
return "Hello World11111111111111";
}

[WebMethod]
public Pig GetPig()
{
return new Pig() { Name = "野猪", Age = 1 };
}
}

2 字客户端调用的时候 添加服务引用 会生成代理类 通过代理类找到自己要调用的方法
在生成代理类的时候 WebConfig会生成一个配置信息

<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="Service1Soap" />
<binding name="OrderSoap" />
<binding name="GetOrderSoap" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:18715/Service1.asmx" binding="basicHttpBinding"
bindingConfiguration="Service1Soap" contract="Wes1.Service1Soap"
name="Service1Soap" />
<endpoint address="http://localhost:18715/Order.asmx" binding="basicHttpBinding"
bindingConfiguration="OrderSoap" contract="WesOrder.OrderSoap"
name="OrderSoap" />
<endpoint address="http://localhost:35095/GetOrder.asmx" binding="basicHttpBinding"
bindingConfiguration="GetOrderSoap" contract="GetOrderOpt.GetOrderSoap"
name="GetOrderSoap" />
</client>
</system.serviceModel>-----这里有三个服务 到时候发布的时候只要更改配置文件

3 在4,0 以上的时候 就没有服务应用程序了 需要添加一个项目 在添服务;


总结 走的协议是Soap 协议 都是用过Xml发送请求 通过xml响应请求(可以穿过防火墙)
生成web服务的时候在后面加上?WSDl可以看他的元数据

客户端通过代理类访问WebService的时候--》给一个####SoapChnannel的中转方法然后他生成报文头报问体 在访问WebService----》
返回的时候还是返回给&&&SoapClien 在生成报文头 报文体 在给客户端


原文地址:https://www.cnblogs.com/cdaq/p/4628589.html