canyue

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  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服务

  

View Code
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的控制台程序,添加服务引用

View Code
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类型的公共属性和字段。

posted on 2012-11-15 15:05  canyue  阅读(521)  评论(0编辑  收藏  举报