WCF分分钟入门

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u010927640/article/details/51030605

      Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架。看过很多资料,还是来一个Demo来得快,之后再回去看相关的资料,学习都是这么反复的过程。

一、建立服务端的应用程序

      1、新建一个WCFServiceTest解决方案,如下图:

                            

      2、删除系统自动生成的ISservice1.csService1.svc

                                                

      3、自定义一个WCF服务:UserInfo.svc,这时VS2012会自动生成WCF接口文件IUserInfo.cs,我们就可以在IUserInfo.cs定义一个WCF方法ShowInfo,在UserInfo.svc.cs对该接口的方法进行实现。

                                   

      IUserInfo:

      UserInfo:

我们可以看到,在WCF中的接口与普通接口的区别只在于两个上下文(一个是[ServiceContract],另一个是[OperationContract]),其他的和我们平时写的接口一样。定义这个上下文需要添加System.ServiceModel的引用。

这时我们的第一个WCF服务程序就建立好了,先来测试一下这个服务是否正常,这样客户端调用的时候就可以实现他们想要实现的功能。将UserInfo.svc“设为起始页,然后运行,如下图所示,VS2012自动调用了WCF的客户端测试工具以便我们测试程序:

                            

在请求窗口中的值中输入参数省份名称,然后点击调用,在响应窗口中如果出现返回值调用WCF服务,显示省份:省份名称,则说明测试成功,点击下面的XML也可以看到XML的数据传输。我们现在建立好了服务的应用程序和业务逻辑,即非常简单的打印省份的方法,也测试成功了,那么我们怎么使用这个服务呢?

二、将WCF程序发布到本地,部署到IIS

      怎么发布WCF程序这里就不再重复了,可以看之前的有关IIS本地发布图文详解。把WCF寄宿在IIS上,不管是哪里需要直接调用即可。现在只是做一个WCF测试,所以把两个服务都放在了自己本地上,我们的目的是用一个服务器的应用程序来访问另一个服务器的WCF服务,实现客户端与服务端之间的通信。

      在做高校云平台项目的时候,我们是把服务程序发布到一个服务器上,客户端调用的时候直接通过WCF(一般都是写在配置文件里)来调用就可以,不用重复再开发,好处就不用多说了。

      部署完了之后,选择UserInfo.svc→ “浏览”,如下图:

                                

点击浏览后如果浏览器出现如下图所示,说明服务部署成功,http://localhost:8082/UserInfo.svc?wsdl即为我们需要引用的服务地址。

                           

三、创建客户端

      1新建WCFClientTest解决方案,并且创建ASP.NET Web窗体应用程序的项目。如下图所示:

                                

      2、新建WCFTest.aspx页面

                             

      3、添加上文给出的服务地址的引用,注意命名空间,在实现的时候需要引用命名空间,如下图:

                                     

这时我们看到解决方案里面多了Service References的文件夹,通过资源管理器打开后里面多了些文件,这些文件用于客户端向服务端的调用,先不用管它。

                                  

四、调用WCF服务端的方法

      WCFTest.aspx:

      WCFTest.aspx.cs:

      WCFTest.aspx设为启动项,运行,如下图:

                                     

      这只是一个很简单的客户端调用WCF服务的例子,适合刚接触的WCF的读者使用。

 

猜你喜欢

转载自blog.csdn.net/u010927640/article/details/51030605
今日推荐