zoukankan      html  css  js  c++  java
  • WCF 中wsHttpBinding配置实例程序

    WCF 中wsHttpBinding配置实例程序

        这两天接触到WCF技术,觉得有必要对一些遇到过的不大清楚的问题进行记录。既为方便后面自己对相关问题的查漏补缺,也希望能够有需要的人提供一点帮助。

    1 介绍

    介绍了WCF程序中使用地址绑定的wsHttpBinding方式实例。

    2 背景

    在WCF技术中,WCF Service在服务器端发布之后,客户端client链接服务器进行服务接口调用有以下四种方式:

    • HTTP:常见的http方式连接,类似于网站传输方式;
    • TCP:使用TCP协议实现本地网络与远程服务器之间的链接,比HTTP方式高效,支持安全控制;
    • Name Pipe:命名管道技术,是用于在本机的不同进程之间的通信;
    • MSMQ:(Microsoft Message Queue,微软消息队列),一种可靠消息排队技术,允许应用程序发送的消息通过队列路由到达目的地。

    Figure 1 WCF Service与Client的连接通信方式[1]

    图1显示了WCF Service在服务端与各Client的通信连接方式。

    [1] 引自《Beginning Visual C# 2010》,Chatper 26, page 902.

    3 代码

        在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

    4 讨论

        本例中,只是将WCF Application Library中的服务Handle到Console中,这样的话,ConsoleHost可为远程服务器,ConsoClient可为各不同地域的客户机。

    5 版权

        在注明出处的情况下,可自由进行复制传播。

        参考文献:

        《Beginning Visual C# 2010》

        http://blog.csdn.net/fangxing80/article/details/6106228

    6 关于作者

    Ray Lei,正处于积累学习阶段的C++/C#、移动平台开发者。

  • 相关阅读:
    .NET、C#和ASP.NET,ASP.NET MVC 四者之间的区别
    Row_Number()显示行号
    iframe高度宽度自适应(转)
    Windows CMD命令大全(转)
    wndows系统命令总结
    删除ORACLE目录OCI.dll文件无法删除 (转)
    IE8兼容性调试及IE 8 css hack
    backbone学习笔记:视图(View)
    js中toFixed() 的使用(转)
    backbone学习笔记:集合(Collection)
  • 原文地址:https://www.cnblogs.com/Rayblog/p/4501980.html
Copyright © 2011-2022 走看看