上一篇文章中,我写了 Web Service 的布置以及调用方式,SOA 的使用当然不止 Web Service 一种方式,事实上,WCF 也是企业当中使用的热门技术之一, WCF 实在 .net 3.0的时候出现的,当时 WCF 的出现可以说是标志性的,它实现了 Web Service 的几乎所有可以实现的功能,同时又解决了许多 Web Service 不能解决或者不好解决的问题。接下来我们就从实际出发,看一看 WCF 是如何配置使用的:
首先,我们继续在之前的项目中新建一个名为WCF的文件夹,并在里面添加一个WCF服务
我们可以看到,除了我们新建的 WCF 服务之外,还出现了一个名为 IMyWCF 的类文件,这里解释一下 ,我们生成的 .svc 文件没有什么特别,但是它必须继承一个接口,就是上面的 IMyWCF 文件,而在接口中,我们可以实现一系列的特性契约来约定 WCF 的方法,
[ ServiceContract ]:该特性表示实现 WCF 服务,是自动填充的
[ OperationContract ]:该特性表示标识的方法是否能在调用端看到,如果没有表示该特性的方法是不能被找到的
还有一些特性,我们见到再说。
此次配置,我们还是发布在 IIS 上面的,事实上, WCF 的优点就在于,不仅仅可以发布在 Web 这种项目上面,同样可以发布在控制台程序或者其他程序上面。这样,我们写好的方法其实就已经发布在 IIS 上了。我们来看一下服务的地址。
接下来我们还是使用昨天的那个测试类,添加服务引用
接下来就是编辑调用的语句很简单,直接上图,不过值得一提的是,昨天我在写 Web Service 的时候使用的是 using() 的方式让程序自动释放资源,这种方式无疑会给记性不好或者经验不足的码农很好的体验,不需要手动的 Close() 了,但是在 WCF 中,这种方式是不可取的,具体原因。。我也不甚了解,(原谅我也是个新手),但是在网上看到据说如果要是断网的情况下, WCF 的资源使用 using() 的方式是断不掉的,所以需要手动释放,如果出现断网的情况会在异常处理中的 About() 方法释放。
就这样,我们的 WCF 服务就已经发布成功,并且可以被远程调用了。