WCF Host,Client,Endpoint配置相关问题_第1页
WCF Host,Client,Endpoint配置相关问题_第2页
WCF Host,Client,Endpoint配置相关问题_第3页
WCF Host,Client,Endpoint配置相关问题_第4页
WCF Host,Client,Endpoint配置相关问题_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在网上看到好多人都在讨论 WCF 的配置 ServiceHost Client EndPoint 等等 其实当我们 在 WEB 项目中添加一个 WCF 服务时 系统自动生成了好多配置就放在了 Web config 文件中的某 个节点 刚开妈整 WCF 的时候还老纳闷儿 为什么别人说的配置之类的跟我做的东西没有什么关 系 难道我做的就不是 WCF 服务 呵呵 后来才发现 原来自己太小儿科了 下面我也侃侃一个 关于 WCF 的配置问题 ServiceHost 配置 1 2 3 section 4 5 6 7 第一个服务的配置开始都是一个节点 8 相关属性解释 9 name 指定这个 service 配置是针对的哪一个 WCF 服务的 10 名称空间 类型名 ServiceHost 载入一个服务后 会到配置文件中 的下找有没有 11 name 属性跟服务匹配的的配置 12 behaviorConfiguration 指定在下的一个的 name 这个特定 13 给这个 service 制定了一些行为 比如服务是否 允许身份模拟 14 15 每个服务可以有多个 Endpoint 下面元素对每个 Endp oint 分别进行配置 16 属性说明 17 address 指定这个 Endpoint 对外的 URI 这个 URI 可以是个绝对地址 也可以是个相对于 baseAddress 的 18 相对地址 如果此属性为空 则这个 Endpoint 的地址就是 b aseAddress 19 binding 指定这个 Endpoint 使用的 binding 这个 banding 可以是 系统预定义的 9 个 binding 之一 20 比如是 basicHttpBinding 也可以是自定义的 customBin ding binding 决定了通讯的类型 21 安全 如何编码 是否基于 session 是否基于事务等等 22 contract 指定这个 Endpoint 对应的 Contract 的全限定名 名称空 间 类型名 这个 Contract 应该被 23 service 元素的 name 指定的那个 service 实现 24 bindingConfiguration 指定一个 binding 的配置名称 跟下面同类的 name 匹配 25 name Endpoint 的名称 可选属性 每个 Contract 都可以有多个 En dpoint 但是每个 Contract 对应的 26 多个 Endpoint 名必须是唯一的 27 28 29 30 31 32 33 下的元素都是可选的 34 35 36 37 38 39 的属性都是可选的 40 属性说明 41 storeName 证书的存储区 可能值为 AddressBook Aut hRoot CertificateAuthority 42 Disallowed My Root TrustedPeople TrustedPublisher 43 storeLocation 证书存储位置 可能值为 CurrentUser LocalMachine 44 45 46 47 48 49 50 53 54 55 56 57 58 59 60 61 指定一个或多个系统预定义的 binding 比如 当 然也可以指定自定义的 customBinding 62 然后在某个指定的 binding 下建立一个或多个配置 以便被 Endpoint 来使用 这些配置 63 64 65 66 67 68 69 70 71 72 73 一个或多个系统提供的或定制的 behavior 元素 74 属性说明 75 name 一个 behavior 唯一标识 元素的 behaviorConfig uration 属性指向这个 name 76 77 82 83 84 85 86 87 88 89 90 91 每个客户端 Endpoint 设置 92 属性说明 93 address ServiceHost 的这个 Endpoint 的 address 94 binding 指定这个 Endpoint 使用的 binding 这个 binding 可以是系统 预定义的 9 个 binding 之一 95 比如是 basicHttpBinding 96 contract 指定这个 Endpoint 对应的 Contract 的全限定名 名称空间 类 型名 97 name Endpoint 的名称 客户端代理类的构造方法中的 endpointConfigu rationName 对应到这个 name 98 bindingConfiguration 指定客户端 binding 的具体设置 指向元素下同类型 binding 的 name 99 100 103 104 105 106 107 ServiceClient 配置 如果我们是在一个项目中添加了 WCF 引用时 系统会在 app config 或者是 web config 文件中添加一些相应的配置 1 2 3 4 9 11 13 14 16 18 19 20 21 22 23 26 27 注 其中一些说明信息是从网上注 其中一些说明信息是从网上 偷偷 来的来的 下面开始讲我遇到的配置问题 不同的场景下大家都会遇到一些不一样的解决问题的方法 所以这个世界上需要有程序员 大家都 说我们是搞 net 的 想想也不错 确实是 搞 net 的 net 出来什么技术我们就 搞 什么 后来又觉 得 搞什么搞嘛 还不是人家提供了多少什么就搞点什么 偶尔想自己搞点什么了 还是去重新实现 他们提供的接口 结果还是 人家让你怎么搞你就得怎么搞 呵呵 今天就碰到一个问题 需要动态设置 WCF 的配置信息 想把 WCF Client 的配置从 web config 文件里拿出来 重新放置在一个目录 如 App Data config xxx xml 在 xxx xml 文件 中添加几个节点 由程序动态决定什么时候用什么样的配置 当时觉得没有什么太大问题 于是就找什么时候可以改变 WCF Client 的配置 从网上查资料 查 MSDN 查 Reflector 最终也没有找着好用的方法 所有的方法里提醒的比较有价值的也就只有 一个 更改 client 的 EndPoint 的相应 Name 属性 然后 Client 会自动按照相应的 Name 对应的配 置文件 配置当前的 ServiceClient 即 说到这里大家可能觉得问题已经解决了 但是 原有的想 法是 直接把配置文件拿到 app data 目录下 而现在只解决了一个 endpoint 的 Name 的问题 因此问题并没有解决 难道微软就真的没有提醒方法可以重新设置 WCF Client 的配置的方法吗 有些了解的同志们 肯定比我更清楚这个问题 WCF Client 的 binding endpoint Address 等属性都是可以重新设置 的 所以是可以重新设置的 只是找了半天也没有找着自己想要的那种 方便 的设置方法 只给 client 一个 XElement 就可 以初始化一个 ServiceClient 至于 XElement 中的关于 Address Binding contract 等解析工作还 是全部抛给微软现成的类库去处理 找着 ServiceClient 父类是 ClientBase 使用 Reflector 查看了此类的构造方法 最终也没有找见可以指定一个 XElemen

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论