俺们要为三个客户端提供一个劳动,大家要为多个客户端提供一个服务

1.什么是WCF。WCF是Windows Communication
Fundation的缩写,是微软在.net 3.0
的时候引进的,用于支付可相互的分布式应用程序,是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一有的。WCF的最后目的是由此进程或分歧的系统、通过本地网络或是通过Internet收发客户和劳务中间的消息。WCF合并了Web服务、.net
Remoting、音讯队列和Enterprise Services的效率并集成在Visual
Studio中。WCF专门用于面向服务支付。

1.什么是WCF。WCF是Windows Communication
Fundation的缩写,是微软在.net 3.0
的时候引进的,用于开发可相互的分布式应用程序,是由微软提升的一组数据通信的应用程序开发接口,能够翻译为Windows通讯接口,它是.NET框架的一片段。WCF的最后目的是经过进度或差其他体系、通过本地网络或是通过Internet收发客户和服务期间的音信。WCF合并了Web服务、.net
Remoting、新闻队列和Enterprise 瑟维斯(Service)(Service)s的职能并集成在Visual
Studio中。WCF专门用来面向服务支出。

2.为啥要用WCF。有如下情状,大家要为三个客户端提供一个劳务,一个是java客户端,要求经过http提供xml格式的多寡,另一个.net
客户端,为了有更好的习性,.net
客户端须要劳务通过tcp协议提供二进制数据。这时候WCF就派上用场了。假如没有WCF,为了完结地点的目标,大家要求给java客户端达成一个ASMX
WebService(Service),给.net 客户端达成一个remoting
service。那统统是三种分化的技艺,完结起来相对来说麻烦很多。

2.为什么要用WCF。有如下处境,大家要为七个客户端提供一个服务,一个是java客户端,需求经过http提供xml格式的数目,另一个.net
客户端,为了有更好的属性,.net
客户端须求劳务通过tcp协议提供二进制数据。那时候WCF就派上用场了。假若没有WCF,为了已毕地方的目的,我们须求给java客户端已毕一个ASMX
WebService(Service),给.net 客户端达成一个remoting
service。那一点一滴是三种差其余技术,完成起来相对来说麻烦很多。

3.创办一个wcf服务

3.创建一个wcf服务

气象实践:为了给java 和.net
八个客户端提供他们需求的劳动,大家需求落成八个东西,一个是WebService  
一个是 .net Remoting ,尽管她们的功用是均等的。

气象实践:为了给java 和.net
几个客户端提供他们需求的服务,咱们须要完毕八个东西,一个是Web瑟维斯  
一个是 .net Remoting ,就算他们的效用是同等的。

接下去是WCF的落成格局:

接下去是WCF的贯彻格局:

图片 1

图片 2

从图中可以了然,大家只需求写一个服务,然后配置八个Endpoint即可满意急需。

从图中得以知道,大家只必要写一个劳动,然后配置多少个Endpoint即可满意必要。

首先,创设一个解决方案,添加一个新类库,取名Hello瑟维斯(Service)

先是,创立一个解决方案,添加一个新类库,取名Hello瑟维斯(Service)

图片 3

图片 4

然后,删除vs 自动生成的Class1.cs 再添加一个WCF服务
新项(右上角能够查找)取名HelloService(Service)。

接下来,删除vs 自动生成的Class1.cs 再添加一个WCF服务
新项(右上角可以搜寻)取名HelloService(Service)。

图片 5

图片 6

规定之后大家看一下档次目录结构。

确定今后大家看一下序列目录结构。

图片 7

图片 8

首先是引用那块。vs 自动添加了对System.Service(Service)Model
命名空间的引用,那些是WCF的大旨命名空间。

首先是引用那块。vs 自动添加了对System.瑟维斯(Service)(Service)Model
命名空间的引用,这几个是WCF的中坚命名空间。

然后是vs生成了2个文件,一个HelloService  一个 IHelloService。

然后是vs生成了2个文件,一个HelloService  一个 IHelloService。

让大家来看一下那多个文本。

让大家来看一下那多少个文件。

首先是IHelloService文件

首先是IHelloService文件

  [ServiceContract]
    public interface IHelloService
    {
        [OperationContract]
        void DoWork();
    }
  [ServiceContract]
    public interface IHelloService
    {
        [OperationContract]
        void DoWork();
    }

看名字就理解这是一个接口,接口所所有的瑟维斯(Service)Contract
特性来自于瑟维斯(Service)Model
命名空间,接口里面富含一个主意定义,DoWork(),方法有一个OperationContract特性也是发源瑟维斯(Service)Model

看名字就领悟那是一个接口,接口所独具的Service(Service)Contract
特性来自于瑟维斯(Service)Model
命名空间,接口里面富含一个主意定义,DoWork(),方法有一个OperationContract特性也是出自Service(Service)Model

接下去是HelloService文件

接下去是Hello瑟维斯(Service)(Service)文件

    public class HelloService : IHelloService
    {
        public void DoWork()
        {
        }
    }
    public class HelloService : IHelloService
    {
        public void DoWork()
        {
        }
    }

只是不难的完毕了IHello瑟维斯(Service)(Service) 接口。

只是不难的贯彻了IHelloService 接口。

现今,我们对两个文本做些修改,来促成我们团结的劳务。

现行,大家对八个文本做些修改,来落到实处大家团结一心的劳务。

把IHelloService(Service) 改成如下:

把IHello瑟维斯(Service)(Service) 改成如下:

    [ServiceContract]
    public interface IHelloService
    {
        [OperationContract]
        string GetMessage(string name);
    }
    [ServiceContract]
    public interface IHelloService
    {
        [OperationContract]
        string GetMessage(string name);
    }

即除去了原先的DoWork方法,改成一个重返String类型的GetMessage方法,传入一个name参数。

即除去了原先的DoWork方法,改成一个回到String类型的GetMessage方法,传入一个name参数。

相应的,HelloService也要变。

相应的,HelloService也要变。

    public class HelloService : IHelloService
    {
        public string GetMessage(string name)
        {
            return "Hello " + name;
        }
    }
    public class HelloService : IHelloService
    {
        public string GetMessage(string name)
        {
            return "Hello " + name;
        }
    }

俺们贯彻了内部的GetMessage方法,让他归来大家必要字符串。

大家贯彻了里面的GetMessage方法,让她回到我们要求字符串。

至今,创设工作就已做到,接下去就是在控制台程序中托管这么些服务。须要声明某些,WCF的托管对象足以是Winform,Console
,或者IIS,或者windows
服务以及此外。为了简化问题,那里选中托管到Console控制台应用程序中。托管对象就是宿主。

至此,创建工作就已到位,接下去就是在控制台程序中托管那几个服务。须要验证一些,WCF的托管对象足以是Winform,Console
,或者IIS,或者windows
服务以及其他。为了简化问题,那里选中托管到Console控制台应用程序中。托管对象就是宿主。

首先,在近日解决方案中新添加一个控制台项目,取名Hello瑟维斯(Service)Host。

先是,在当下解决方案中新添加一个控制台项目,取名HelloService(Service)Host。

图片 9

图片 10

下一场,要对那么些Host添加多个引用,一个上边的System.ServiceModel,另一个是地点的WCF项目。

然后,要对这一个Host添加四个引用,一个上面的System.瑟维斯(Service)(Service)Model,另一个是上面的WCF项目。

图片 11图片 12

图片 13图片 14

 

 

下一场会收获如下的引用目录。

接下来会得到如下的引用目录。

图片 15

图片 16

为了托管那一个WCF服务,我们须求给项目增加一个布置文件,用于托管这一个WCF服务。

为了托管这一个WCF服务,大家须要给项目增进一个布局文件,用于托管这几个WCF服务。

右键HelloService(Service)Host项目,选拔添加新项,应用程序配置文件,名字就是默认的App.config

右键Hello瑟维斯(Service)Host项目,接纳添加新项,应用程序配置文件,名字就是默许的App.config

相关文章