Web Service和WCF之间的区别

by Santhakumar Munuswamy

  Posted on  13 二月 2015

  世界足球联合会


 

介绍

本文介绍了Web服务和WCF技术之间的区别。

总览

我以前的文章提供了  Introduction to 世界足球联合会 (Windows Communication Framework)。现在,我们将讨论Web服务和WCF概念之间的区别。

网页服务 (ASMX)

Web服务仅用于通过HTTP使用SOAP(简单对象访问协议)来发送/接收消息。

在名称空间“ System.Web.Services。 WebService类”,其中包含构造函数,方法,繁荣和事件。 

using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;

namespace HelloWorldServices
{
    /// <summary>
    /// Summary description for Service1
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    public class Service1 : System.Web.Services.WebService
    {

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
    }
}

世界足球联合会

世界足球联合会用于通过任何传输协议(例如HTTP,TCP / IP,MSMQ,命名管道等)以任何格式交换消息。它的默认格式是SOAP。

注意:             

Microsoft消息队列(MSMQ)是Microsoft开发的消息队列服务。

简单对象访问协议(SOAP)是W3C开发的消息传递协议。 

代码:  IService1.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace HelloWorldWCFService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface IService1
    {

        [OperationContract]
        string GetData(int value);

        [OperationContract]
        CompositeType GetDataUsingDataContract(CompositeType composite);

        // TODO: Add your service operations here
    }


    // Use a data contract as illustrated in the sample below to add composite types to service operations.
    [DataContract]
    public class CompositeType
    {
        bool boolValue = true;
        string stringValue = "Hello ";

        [DataMember]
        public bool BoolValue
        {
            get { return boolValue; }
            set { boolValue = value; }
        }

        [DataMember]
        public string StringValue
        {
            get { return stringValue; }
            set { stringValue = value; }
        }
    }
}

Service1.svc.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace HelloWorldWCFService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the class name "Service1" in code, svc and config file together.
    public class Service1 : IService1
    {
        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }

        public CompositeType GetDataUsingDataContract(CompositeType composite)
        {
            if (composite == null)
            {
                throw new ArgumentNullException("composite");
            }
            if (composite.BoolValue)
            {
                composite.StringValue += "Suffix";
            }
            return composite;
        }
    }
}

Web Service和WCF表之间的区别

S.没有

网页服务

世界足球联合会

1

它是可用的名称空间名称“ System.Web.Services.WebService类”

它是可用的名称空间名称“ System.ServiceModel”

2

支持仅托管IIS

它支持IIS,自托管(控制台托管),Windows激活服务,  Windows Services

3

仅用于XML序列化器

仅用于DataContractSerializer

4

支持单向通信和请求-响应

支持单向,双向(双工)通信和请求响应

5

支持绑定,如XML 1.0,MTOM(消息传输优化机制),自定义

支持绑定,如XML 1.0,MTOM(消息传输优化机制),二进制和自定义

6

支持的传输协议,例如HTTP,TCP和自定义

它受支持的传输协议,例如HTTP,TCP,命名管道,MSMQ,P2P和自定义

7

支持协议安全性

它支持协议安全性,事务处理和可靠消息

 

结论

       本文将帮助您了解Web服务和.NET中WCF之间的区别。 

 


关于作者
Santhakumar Munuswamy是一位经验丰富的解决方案架构师,并且是Cloud / AI解决方案中最有价值的专家。他在解决方案设计,软件产品开发,技术文档,Web和云应用程序的项目管理方面拥有大约14年的经验。他在不同领域(汽车,电信,医疗保健,物流和仓库自动化等)的IT行业经验丰富,担任过技术架构师,Genesys顾问,技术负责人,团队负责人和开发人员。他在指导和指导高潜力开发人员方面经验丰富。

跟着我: 脸书, 推特, 谷歌加, 领英
博客评论由 领英


月份清单

社区徽章