实战总结:
(1)建立契约和服务
契约和服务的建立很简单(可以简单看做接口,实现类和数据类型的建立)。
a.我们可以借助一定的“帮助”来建立,如在VS中,新建项目选择WCF服务库。
b.如果不需要帮助,我们可以自己新建类库,契约是一个类库,服务是一个类库。
c.还有一种高级的帮助,就是VS中的新建项目下的WCF服务应用程序。它其中有一个.svc文件,并把它设置成起始页,只要F5运行程序。服务就可以执行了。所以,顾名思义WCF服务应用程序不同于WCF服务库,它是可以执行的。通过WCF的客户端测试工具可以直接调用该服务。
这里也注意在建立数据契约和服务契约时用到的两个引用:
using System.Runtime.Serialization; 【DataContract】【DataMember】
using System.ServiceModel;【ServiceContract】【OperationContract】
(2)选择宿主,配置终结点,发布服务
a.IIS
把上述的svc文件发布到IIS上,打开,获得终结点中的地址A,对于IIS这种方式,B只能是HTTP绑定类型。
b.Windows应用程序
(i)在应用程序中引用契约类库和服务类库.
(ii)建立宿主
(iii)配置终结点和元数据(通过代码或配置文件)
如果只配置了终结点,那么客户端发现不了服务,客户端必须引用服务端的契约类库,只有配置了元数据和服务行为,告诉客户端可以发现,怎么发现服务,那么客户端可以不用引用服务端的契约类库。
(iv)运行宿主程序,启动服务
(3)客户端调用
是否需要引用契约类库,根据你的服务端是否配置了元数据和服务行为,如果没有,就得引用。
a.添加服务引用,会自动生成代理类来调用
b.使用svcutil生成文件。
c.通过通道工厂。