webservice服务(webservice服务端调用失败什么意思)
什么是WebService?
WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依赖于平台,可以实现不同的语言间的相互调用,通过Internet进行基于Http协议的网络应用间的交互。\x0d\x0aWebService实现不同语言间的调用,是依托于一个标准,webservice是需要遵守WSDL(web服务定义语言)/SOAP(简单请求协议)规范的。\x0d\x0aWebService=WSDL+SOAP+UDDI(webservice的注册)\x0d\x0aSoap是由Soap的part和0个或多个附件组成,一般只有part,在part中有Envelope和Body。\x0d\x0aWeb Service是通过提供标准的协议和接口,可以让不同的程序集成的一种SOA架构。\x0d\x0aWeb Service的优点\x0d\x0a(1) 可以让异构的程序相互访问(跨平台)(2) 松耦合\x0d\x0a(3) 基于标准协议(通用语言,允许其他程序访问)\x0d\x0aWeb Service的基本原理\x0d\x0a(1) Service Provider采用WSDL描述服务\x0d\x0a(2) Service Provider 采用UDDI将服务的描述文件发布到UDDI服务器(Register server)\x0d\x0a(3) Service Requestor在UDDI服务器上查询并 获取WSDL文件\x0d\x0a(4) Service requestor将请求绑定到SOAP,并访问相应的服务。
什么是webservice
1、Web Service 是一种新的web应用程序分支
2、是自包含、自描述、模块化的应用
3、可以发布、定位、通过web调用
4、Web Service可以执行从简单的请求到复杂商务处理的任何功能,一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务.
5、实际上,他的出现的最佳好处就是跨平台操作,不在局限于web编程语言的限制。
php的一般的应用,服务方:根据一定的规则和用户的参数生成一个标准的xml文档。
如何从头创建一个WebService服务
创建一个简单的webservice:
讲述碰到的第一个小问题:本人使用的visual studio2010,在新建项目时找不到web服务?
直接选择.net4.0,可以选择创建asp.net空模板,然后添加新项选择web服务模板即可。此方法最简单。还有:选择.net2.0,,3.0,3.5,就可以选择webservice模板了,之后需要.net4.0新特性,在项目属性窗口或者页窗口的Build选项卡中选择.net4.0即可。
新建一个空的asp.net项目,添加webservice页面,编写:
namespace FirstWebservice
{
/// summary
/// WebService1 的摘要说明
/// /summary
[WebService(Namespace = "")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// [System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod(Description = "求和的方法")]
public double addition(double i, double j)
{
return i + j;
}
[WebMethod(Description = "求差的方法")]
public double subtract(double i, double j)
{
return i - j;
}
[WebMethod(Description = "求积的方法")]
public double multiplication(double i, double j)
{
return i * j;
}
[WebMethod(Description = "求商的方法")]
public double division(double i, double j)
{
if (j != 0)
return i / j;
else
return 0;
}
}
}
View Code
至此创建了一个webservice,里面包含加减乘除4个方法。如下图显示:
Asp.net调用webservice:
下面创建一个asp.net项目调用webservice:
首先引用webservice,将服务的网站网址加入服务引用即可。添加服务引用界面如图:
编写调用的方法:
protected void Button1_Click(object sender, EventArgs e)
{
string selectFlag = selectOper.Value;
ServiceReference1.WebService1SoapClient web = new ServiceReference1.WebService1SoapClient();
if (selectFlag.Equals("+"))
{
Result.Text = (web.addition(double.Parse(Num1.Text), double.Parse(Num2.Text))).ToString();
}
else if (selectFlag.Equals("-"))
{
Result.Text = (web.subtract(double.Parse(Num1.Text), double.Parse(Num2.Text))).ToString();
}
else if (selectFlag.Equals("*"))
{
Result.Text = (web.multiplication(double.Parse(Num1.Text), double.Parse(Num2.Text))).ToString();
}
else if (selectFlag.Equals("/"))
{
Result.Text = (web.division(double.Parse(Num1.Text), double.Parse(Num2.Text))).ToString();
}
}
在运行界面内,随即选择“-”号,最后得到的运算如下图:
Winform调用webservice:
既然上面在介绍webservice时说了其是夸平台的,那么创建一个winform系统调用webservice。同样先添加webservice,
private void button1_Click(object sender, EventArgs e)
{
ServiceReference1.WebService1SoapClient web = new ServiceReference1.WebService1SoapClient();
this.txt3.Text = (web.multiplication(double.Parse(this.txt1.Text), double.Parse(this.txt2.Text))).ToString();
}
可以看出winform的调用和asp.net调用基本是相同的。在此也就没有一一验证,只是简单的选择“*”作为运算符,运行结果如下:
总结:
上文简单描述了webservice的基本认识,接着创建了一个相当简单的webservice,然后创建一个asp.net项目和winform系统对它进行调用,所有一切基本上完成了webservice的使用过程。大家平时看到的更高级的webservice,或者可以说是更为复杂的webservice吧,这些都是在最简单的webservice基础上增加的一些很复杂的业务逻辑,抽丝剥茧后还是基本的webservice应用。