Web服务是利用SOAP(Simple Object Access Protocol,简单对象访问协议)在HTTP上执行远程方法调用的一种新方法。
SOAP技术是一个基于XML的标准,它详细描述了怎样在HTTP以可重复的方式进行方法调用。
通过.NET Framework,可以非常容易地利用此技术。与ASP.NET一样,我们可以在服务器上使用完整的C#和.NET技术,而且可以从任何平台上通过HTTP访问服务器,从而实现Web服务的简单利用。
此外,也可以使用WSDL(Web Service Description Language,Web服务描述语言)完整地描述Web服务,还可以在运行期间动态查找Web服务。WSDL可以完整地描述Web服务、可用的方法,以及调用这些方法的各种方式。
这里关于SOAP和WSDL不做过多的讨论,想深入了解的可以找相关的书籍研究,本文主要是讨论Web服务。
Web服务的讨论分为两个方面:
A.创建Web服务,这一部分主要讨论如何编写Web服务和如何把它们放在Web服务器上。
B.使用Web服务,这一部分主要讨论如何在客户端应用程序中使用Web服务。
1.VS2010 创建一个空的WebApplication
2.在项目中添加Web服务
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Services; namespace MyWeb { /// <summary> /// WebService 的摘要说明 /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 // [System.Web.Script.Services.ScriptService] public class WebService : System.Web.Services.WebService { [WebMethod] public string ShowMsg() { return "最简单的Web服务"; } } }
然后编译后,选中创建的Web服务,右击"在浏览器中查看",最简单的Web服务就创建好了。
3.使用创建的Web服务
创建名为WebClient的控制台程序,添加服务引用
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WebClient { class Program { static void Main(string[] args) { localhost.WebService service = new localhost.WebService(); string msg = service.ShowMsg(); Console.WriteLine(msg); Console.ReadKey(); } } }
提醒,创建Web服务最好部署在IIS上。
对于Web服务可用的类型
String | Char | Byte |
Boolean | Int16 | Int32 |
Int64 | UInt16 | UInt32 |
UInt64 | Single | Double |
Guid | Decimal | Datetime |
XmlQualifiedName | class | struct |
XmlNode | DataSet | enum |
以上所有类型的数组都可以使用,因为它们都是泛型集合类型,如List<string>。还要注意,只能编组class和struct类型的公共属性和字段。