zoukankan      html  css  js  c++  java
  • WCF-简单 配置文件

    一、服务端配置文件

    主要包括

    1、services

    配置服务节点
     <!--name 指的是契约实现类-->
          <service name="WcfLib.User2" behaviorConfiguration="mexBehaviour">
            <host>
              <baseAddresses>
                <!--指定默认地址-->
                <add baseAddress="http://localhost:6666/"/>
              </baseAddresses>
            </host>
            <!--address不填写则用默认值 baseaddress,如果填写而且baseaddress有值 则两者拼接 http://localhost:6666/MyServices2,如果baseaddress没有则用address-->
            <!--binding通讯格式 一共九种,对应的地址格式也不一样,复杂配置还需要参看文档-->
            <!--contract 契约-->
            <endpoint address="MyServices2" binding="basicHttpBinding" contract="WcfLib.IUser2">
              <!-- 用户定义的xml元素集合,一般用作SOAP的header内容-->
              <headers>
                <a></a>
                <b></b>
                <c></c>
                <d></d>
              </headers>
              <!--身份认证用 作者也没用过-->
              <identity>
                <dns/>
              </identity>
            </endpoint>
            <!--元数据节点 即使关闭元数据,这个节点也可以把元数据暴露出去。-->
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint>
          </service>

    2、behaviors

      定义behavior就可以设置服务的运行时属性。

      分为服务行为和端点行为。

      对象实例的生命周期、 并发与异步处理、 配置行为 事务行为、 序列化行为、 元数据转换、 会话的生命周期、 地址过滤以及消息头的处理、 模拟(Impersonation);

      2.1、服务行为

        元数据暴露等等

    <serviceBehaviors>
            <behavior name="mexBehaviour">
              <!-- 为避免泄漏元数据信息,
              请在部署前将以下值设置为 false 并删除上面的元数据终结点  -->
              <!--设置未false被人不能发现,一般当客户端已经加载好服务代理就可以设置为false了。配置修改,服务要重启,才能生效-->
              <serviceMetadata  httpGetEnabled="true" />
              
              <!--服务终结点的可发现性-->
              <serviceDiscovery>
                <!--指定用于公开服务的服务终结点的绑定、协定和地址属性。-->
                <announcementEndpoints>
                  <!--<endpoint address="" name="" binding="" contract=""></endpoint>-->
                </announcementEndpoints>
              </serviceDiscovery>
              <!--在WCF的使用过程中,有时会碰到传递的数据量比较巨大,客户端程序报错。常见的解决方法就是通过增大改变服务端与客户端配置文件serviceBehaviors的dataContractSerializer 的maxItemsInObjectGraph属性-->
              <!--<dataContractSerializer maxItemsInObjectGraph="" ignoreExtensionDataObject="" />-->
            </behavior>
          </serviceBehaviors>

      2.2、端点行为

        具体方法回调,等等(笔者也没有具体研究)

    <endpointBehaviors>
            <behavior>
              
            </behavior>
          </endpointBehaviors>

    3、bindings

      传输格式描述

    <!--描述具体绑定操作 传输编码  形式  kookie  内容大小 等-->
        <bindings>
          <basicHttpBinding>
            <binding name="basic" maxReceivedMessageSize="2147483647" transferMode="Streamed" messageEncoding="Text" allowCookies="false"></binding>
          </basicHttpBinding>
          <netTcpBinding>
          </netTcpBinding>
          <customBinding>
            <!--自定义绑定,貌似只有一些超时操作-->
            <!--<binding openTimeout="" closeTimeout="" receiveTimeout="" sendTimeout="" name=""></binding>-->
          </customBinding>
        </bindings>

    二、客户端配置文件

    <bindings>
          <basicHttpBinding>
            <binding name="BasicHttpBinding_IUser1" />
            <binding name="BasicHttpBinding_IUser2" />
            <binding name="BasicHttpBinding_IUnity1" />
          </basicHttpBinding>
          <netTcpBinding>
            <binding name="NetTcpBinding_IUnity2" />
          </netTcpBinding>
        </bindings>
        <behaviors>
    
        </behaviors>
        <client>
          <endpoint address="http://localhost:9999/MyServices1" binding="basicHttpBinding"
              bindingConfiguration="BasicHttpBinding_IUser1" contract="WCFServiceUser1.IUser1"
              name="BasicHttpBinding_IUser1" />
          <endpoint address="http://localhost:6666/MyServices2" binding="basicHttpBinding"
              bindingConfiguration="BasicHttpBinding_IUser2" contract="WCFServiceUser2.IUser2"
              name="BasicHttpBinding_IUser2" />
          <endpoint address="http://localhost:7777/MyServices3" binding="basicHttpBinding"
              bindingConfiguration="BasicHttpBinding_IUnity1" contract="WCFServiceUnity.IUnity1"
              name="BasicHttpBinding_IUnity1" />
          <endpoint address="net.tcp://localhost:7776/MyServices4" binding="netTcpBinding"
              bindingConfiguration="NetTcpBinding_IUnity2" contract="WCFServiceUnity.IUnity2"
              name="NetTcpBinding_IUnity2">
          </endpoint>
        </client>

    自动生成,不在具体描述。

     三、通过工具配置  配置文件

      1、没有配置文件的情况,

    文件-->新建服务

    新建服务

    浏览已经生成好的wcf类库dll,加载进去。然后配置。配置完成后,保存生成app.config文件。

      2、已经存在配置文件的情况,直接打开

     四、代理代码生成工具

      1、添加外部工具

      工具-->外部工具-->添加

    初始目录:是指代理类以及配置文件生成的目录,  可以在点击后面的三角图标按钮选择,不同的生成位置。

    C:Program Files (x86)Microsoft SDKsWindowsv10.0AinNETFX 4.6.1 ToolsSvcUtil.exe(根据自己安装的类库任意选择)

    知道简单配置就可以了,具体的实际中查询配置文档

    推荐: https://msdn.microsoft.com/zh-cn/library/ms731354(v=vs.110).aspx

        http://www.cnblogs.com/yank/p/3668371.html

        http://www.cnblogs.com/wayfarer/archive/2007/08/24/867987.html

  • 相关阅读:
    JSON数据格式
    AJAX入门
    SpringMVC如何处理JSON数据和运行流程
    SpringMVC视图解析器与数据类型转换
    SpringMVC入门——基础知识
    SpringMVC自定义拦截器与异常处理
    SpringMVC实现文件的上传和下载
    Eclipse中安装Springtools插件的步骤
    SpringMVC实现员工信息的增删改查
    文件的上传与下载
  • 原文地址:https://www.cnblogs.com/wudequn/p/7085860.html
Copyright © 2011-2022 走看看