一、服务端配置文件

主要包括

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="" 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 SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\SvcUtil.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

最新文章

  1. 代码的坏味道(3)——基本类型偏执(Primitive Obsession)
  2. Python面向对象高级之类的特殊成员
  3. js数字时钟
  4. 观察者模式(Observer pattern)
  5. linux下svn命令使用大全(share)
  6. AJAX-跨域解决之 JSONP
  7. folly
  8. 剑指 offer set 3 旋转数组的最小数字
  9. 使用asp.net动态添加html元素
  10. trim()函数IE7/8不兼容
  11. hdu_5818_Joint Stacks(线段树模拟)
  12. 双系统删除Ubuntu后出现grub界面而无法正常启动Windows系统的解决方法
  13. webpackage 2.x 使用
  14. UI设计|PS软件操作应用——GIF动图
  15. jap篇 之 JSTL标签库
  16. Django session/cookie
  17. (4)4 larger-than-life lessons from soap operas
  18. 第三百九十节,Django+Xadmin打造上线标准的在线教育平台—Django+cropper插件头像裁剪上传
  19. plsql链接数据库配置
  20. Django实战(10):单元测试

热门文章

  1. Arrays.binarySearch采坑记录及用法
  2. Spring Cloud Gateway(九):网关过滤器 GatewayFilter
  3. 手动制作BIOS和EFI多启动U盘
  4. 全局设置页面颜色 返回按钮样式 iOS
  5. STL算法之find
  6. qt mvc3
  7. DELPHI正则表达式
  8. Packetbeat简介
  9. 008-多线程-JUC集合-Queue-LinkedBlockingQueue
  10. 项目中学习ReactiveCocoa的使用方法