zoukankan      html  css  js  c++  java
  • 搭建一个简单的WCF hellohello

    一个简单的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后,通过同事的电脑

    也能够正常进行访问。

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

  • 相关阅读:
    VIM 用正则表达式,非贪婪匹配,匹配竖杠,竖线, 匹配中文,中文正则,倒数第二列, 匹配任意一个字符 :
    中国科学院图书馆分类法
    让进程在后台可靠运行的几种方法 nohup,setsid,&,disown,CTRL-z ,screen
    Exception Handling Statements (C# Reference)
    ChannelFactory.Endpoint 上的地址属性为空。ChannelFactory 的终结点必须指定一个有效的地址。
    .NET中六个重要的概念:栈、堆、值类型、引用类型、装箱和拆箱
    WCF Host中的BaseAddress 和 Endpoint中的Address的区别
    使用vs自带的wcf配置工具
    Automatic Code Generation-->Implement Interface
    Learning WCF Chapter1 Exposing Multiple Service Endpoints
  • 原文地址:https://www.cnblogs.com/doNetTom/p/tom_wcf.html
Copyright © 2011-2022 走看看