搭建一个简单的WCF

一个简单的WCF


 项目程序结构:

Client:客户端控制台应用程序,主要调用WCF服务为主

web:WCF服务寄宿宿主

Service:服务,实现契约

Service.Interface:契约,定义服务接口,向外提供方法

此项目WCF服务寄宿以IIS为主,主要实现功能是通过WCF实现用户名验证功能,下面看下web程序中的配置文件(web.config)的内容

  <system.serviceModel>
    <bindings>
      <wsHttpBinding>
        <binding>
          <security mode="None"></security>//关闭安全
        </binding>
      </wsHttpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior name="data">
          <serviceMetadata httpGetEnabled="true" />//在实际实际开发中设置为fasle避免用户直接查看服务的内容
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
        <behavior name="">
          <serviceMetadata httpGetEnabled="true" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <services>//定义服务
      <service name="Service.LoginDAL" behaviorConfiguration="data">
        <endpoint contract="Service.Interface.ILoginDAL" binding="wsHttpBinding"/>
      </service>
  </services> <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/> </system.serviceModel>

 以上配置文件,只是纯粹的实现WCF服务,不包含权限判断,安全信息,通道等相关内容。

知识点如下:

<service>定义服务,该标签存在于<services>下,通常是一个<service>对应一个契约,介绍下其属性:

name:定义名字,指向实现定义契约的类;

behaviorConfiguration:数据,可自定义名称;

endpoint:终结点,关键是定义该服务的契约,地址,绑定方式,也就是所谓的ABC原则

终结点的定义在这里只是最简单的方式,因为是寄宿于IIS中,所以在配置文件就没有再次指出address的内容,查看contract与binding分别对应的则是"契约",

与wsHttpBinding,监听地址默认为address中定义的地址。绑定方式这里使用的是wshttpbinding,当然你也可以用其他绑定方式等,这里就不在一一列举。

  客户端调用非常简单,在添加服务引用之后我们就可以把服务当成类来使用,注意实例化的时候请调用你的服务名字包含Client的类,具体为什么我们下次再

说,代码如下

 TestService.TestServiceClient client = new TestService.TestServiceClient();
 string isLogin = client.IsLogin("username").ToString();

  

  以上就是一个简单的WCF服务内容,通过WCF提供的客户端测试工具,我们可以测试数据通过返回值进行数据判断,将web发布至IIS后,通过同事的电脑

也能够正常进行访问。

  好了今天的内容就到这里,由于本人是新手,有不对的地方还请海涵,高手指出大家一起进步

 

posted @ 2013-02-03 17:17  hellohello-tom  阅读(568)  评论(0编辑  收藏  举报