从表面上看,Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。

Web Service是一种具有下列功能的软件组件:
● 可以通过SOAP 接口(Simple Object Access Protocol简单对象访问协议) 接口来进行访问 。
● 它是使用WSDL(Web Service Description Language,Web Service描述语言 ) 文档形式描述的接口。

一、建立一个WebService

打开.NET。新建工程。选择ASP.NET WEBSERVICE。确定。可以看到Service1.asmx.cs文件中有一个被注释掉的HelloWorld() example。

去掉注释。即可得到一个WebService的HelloWorld方法。

如果你愿意还可以添加别的方法。

运行即可看到你的可供调用的WebService方法的列表。

二、调用WebService

新建一个Windows Application。

在.NET中的调用相对简单。微软已经做好了中间的代理类,只有我们稍微做一下配置即可。

在SolutionExplor中右击Reference。添加WebReference。在URL栏中填入刚才WebService运行的地址。例如:http://localhost/WebService1/Service1.asmx。点击Go,即可看到你的WebService方法列表。点击添加引用。

在Form上添加一个按钮和一个文本框。在按钮的点击事件添加如下代码:

WindowsApplication1.WebReference.Service1 test = new WindowsApplication1.WebReference.Service1();

this.textBox1.Text = test.HelloWorld();

在运行后点击按钮,可以看到文本框中的文本变成了Hello World。WebService调用成功。

在调用WebService时出现如下错误System.Net.WebException: The request failed with HTTP status 401: 
Access Denied。在网上搜索一下发现出现这种错误的很多。原因不详。但是基本是权限问题造成的。
我做了如下尝试
●文件夹权限改成EveryOne都可以访问。
●添加引用的时候把localhost改成127.0.0.1。
●把ASPNET用户添加到管理员组。
但是都没有奏效。然后我重新安装了IIS。发现可以了。仍然不知道是什么原因造成的。暂做记录。以备后查。