WCF 中wsHttpBinding配置实例程序
这两天接触到WCF技术,觉得有必要对一些遇到过的不大清楚的问题进行记录。既为方便后面自己对相关问题的查漏补缺,也希望能够有需要的人提供一点帮助。
介绍了WCF程序中使用地址绑定的wsHttpBinding方式实例。
在WCF技术中,WCF Service在服务器端发布之后,客户端client链接服务器进行服务接口调用有以下四种方式:
Figure 1 WCF Service与Client的连接通信方式[1]
图1显示了WCF Service在服务端与各Client的通信连接方式。
[1] 引自《Beginning Visual C# 2010》,Chatper 26, page 902.
在Visual Studio 2010下创建。
首先,第一个例子是使用wsHttpBinding,然后使用控制台Console应用程序作为Host及Client,其工程结构图如下:
Step 1:建立WCF Service Library工程,WcfSericeLib,VS会自动生成接口文件IService1.cs及类实现文件Service1.cs。
Step 2: 分别创建Console Application工程ConsoleHost和ConsoleClient。
在App.config文件中,我们可以看到以下配置:
从中我们可以看到,其实这里默认使用了wsHttpBinding,此时程序是可以编译运行的。但是本程序演示的目的是将WCF Service寄宿到ConsoleHost中,让ConsoleHost启动服务,然后通过ConsoleClient调用已启用的服务。
Step 3:将WcfServiceLib中的App.config文件剪切到ConsoleHost中,并在ConsoleHost中引入WcfServiceLib.dll.
Step 4: ConsoleHost中加入System.ServiceModel库,更改Program.cs文件如下:
这时,将ConsoleHost设为启动项目,就能将Service服务启动成功。
Step 5:先在ConsoleHost工程Debug目录下将ConsoleHost.exe运行,能够看到Service1 Started的启动信息。 然后在ConsoleClient中Add Service Reference,将ConsoleHost中App.config中的baseAddress复制到地址栏中,可以查找到当前Service。如下图所示:
上述步骤完成后,在ConsoleClient中会自动生成app.config的配置文件,具体见代码。
Step 6:更改ConsoleClient program.cs,如下:
最后,先运行ConsoleHost.exe启动Service的情况下,再运行ConsoleClient.exe,可得到如下结果:
至此,该示例完成。
整个工程源代码下载:WCFDemo_wsHttpBinding.zip
本例中,只是将WCF Application Library中的服务Handle到Console中,这样的话,ConsoleHost可为远程服务器,ConsoClient可为各不同地域的客户机。
在注明出处的情况下,可自由进行复制传播。
参考文献:
《Beginning Visual C# 2010》
http://blog.csdn.net/fangxing80/article/details/6106228
Ray Lei,正处于积累学习阶段的C++/C#、移动平台开发者。