WebService是一种可以接收从Internet或者Internet上的其他系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
其中的:
- XML(Extensible Markup Language):扩展性可标记语言。面向短期的临时数据处理、面向万维网,是Soap的基础
- Soap(Simple Object Access Protocl):简单对象存取协议,是XML Web Service 的通信协议
WSDL(Web Services Descroption Language):WSDL文件是一个XML文档,用于说明一组SOAP 消息以及如何交换这些消息 - UDDI(Universal Description, Discovery, and Integration)是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。
需要开启:
控制面板-程序和功能-启用或关闭Windows功能-Internet Information services
测试是否开启成功:
浏览器输入:127.0.0.1或者localhost看是否显示IIS界面
步骤:
新建一个Asp.net空网站 添加Web服务(ASMX)文件
//WebService类中自定义的方法
[WebMethod(Description = "求和的方法")]
public int Add(int x,int y)
{
return x + y;
}
然后发布网站-配置文件(自定义)-连接(文件系统)-选择目标位置(保存的位置)-发布
使用服务方法:
新建一个WinForm桌面应用程序,调用方法:
引用右键-添加服务引用-输入发布在IIS上的网站地址-转到-输入命名空间
private void btnAdd_Click(object sender, EventArgs e)
{
int x = int.Parse(txtX.Text.Trim());
int y = int.Parse(txtY.Text.Trim());
//使用new关键字,实例化WebService中的类的对象
Add.WebServiceSoapClient wssc = new Add.WebServiceSoapClient();
//调用类中的方法
int result = wssc.Add(x, y);
txtRes.Text = result.ToString();
}
添加外部服务的错误解决方法:
- 无法加载协定为xxx的终结点配置部分,因为找到了该协定的多个终结点配置
删除app.config里的binding一个子节点即可 -
服务器无法处理请求。未将对象引用设置到对象的实例
添加服务引用的时候点高级-兼容性添加Web引用
同时new对象也要改变