從表面上看,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。發現可以了。仍然不知道是什么原因造成的。暫做記錄。以備后查。