WCF后传系列(5):深入WCF寻址Part 5—逻辑地址和物理地址
概述
两种地址
<endpoint address="[url]http://localhost:8887/CalculatorService1[/url]"binding ="wsHttpBinding"contract="TerryLee.WCFAddressing.Contract.ICalculator"> </endpoint> <endpoint address="[url]http://localhost:8887/CalculatorService2[/url]"binding ="basicHttpBinding"contract="TerryLee.WCFAddressing.Contract.ICalculator"> </endpoint>
using (ServiceHost calculatorServiceHost =new ServiceHost(typeof(CalculatorService))) {calculatorServiceHost.Opened += delegate{Console.WriteLine("Service begin to listen via the Address:{0}",calculatorServiceHost.BaseAddresses[0].ToString());};calculatorServiceHost.Open();foreach (ServiceEndpoint se in calculatorServiceHost.Description.Endpoints){Console.WriteLine("Endpoint details:");Console.WriteLine("Logical address: \t{0}", se.Address);Console.WriteLine("Physical address: \t{0}", se.ListenUri);Console.WriteLine("Binding: \t{0}", se.Binding.Name);Console.WriteLine();}Console.Read(); }
设定物理地址
WSHttpBinding wsbinding = new WSHttpBinding(); calculatorServiceHost.AddServiceEndpoint(typeof(ICalculator),wsbinding,"urn:calcservice", // 逻辑地址new Uri("http://localhost:8887/CalculatorService") // 物理地址 );
<endpoint address="urn:calcservice"binding ="wsHttpBinding"contract="TerryLee.WCFAddressing.Contract.ICalculator"listenUri="[url]http://localhost:8887/CalculatorService[/url]"bindingConfiguration="securityBinding"> </endpoint>
工作原理
<wsdl:service name="CalculatorService"><wsdl:port name="WSHttpBinding_ICalculator" binding="tns:WSHttpBinding_ICalculator"><soap12:address location="urn:calcservice" /><wsa10:EndpointReference><wsa10:Address>urn:calcservice</wsa10:Address></wsa10:EndpointReference></wsdl:port> </wsdl:service>
<system.serviceModel><client><endpoint address="urn:calcservice"binding="wsHttpBinding"contract="TerryLee.WCFAddressing.Contract.ICalculator"name="defualtEndpoint"behaviorConfiguration="calculatorEndpointBehavior"bindingConfiguration="securityBinding"></endpoint></client><behaviors><endpointBehaviors><behavior name="calculatorEndpointBehavior"><clientVia viaUri="[url]http://localhost:8887/CalculatorService[/url]" /></behavior></endpointBehaviors></behaviors> </system.serviceModel>
物理地址模式
TcpTrace消息截获
<service name="TerryLee.WCFAddressing.Service.CalculatorService"behaviorConfiguration="calculatorBehavior"><host><baseAddresses><add baseAddress="[url]http://localhost:8887/Calculator[/url]"/></baseAddresses></host><endpoint address="[url]http://localhost:8887/CalculatorService[/url]"binding ="wsHttpBinding"contract="TerryLee.WCFAddressing.Contract.ICalculator"></endpoint> </service>
<?xml version="1.0" encoding="utf-8" ?> <configuration><system.serviceModel><client><endpoint address="[url]http://localhost:8887/CalculatorService[/url]"binding="wsHttpBinding"contract="TerryLee.WCFAddressing.Contract.ICalculator"behaviorConfiguration="calculatorEndpointBehavior"></endpoint></client><behaviors><endpointBehaviors><behavior name="calculatorEndpointBehavior"><clientVia viaUri="[url]http://localhost:8080/CalculatorService[/url]" /></behavior></endpointBehaviors></behaviors></system.serviceModel> </configuration>
<service name="TerryLee.WCFAddressing.Service.CalculatorService"behaviorConfiguration="calculatorBehavior"><host><baseAddresses><add baseAddress="[url]http://localhost:8080/Calculator[/url]"/></baseAddresses></host><endpoint address="[url]http://localhost:8887/CalculatorService[/url]"binding ="wsHttpBinding"contract="TerryLee.WCFAddressing.Contract.ICalculator"listenUri="[url]http://localhost:8080/CalculatorService[/url]"></endpoint> </service>
<?xml version="1.0" encoding="utf-8" ?> <configuration><system.serviceModel><client><endpoint address="[url]http://localhost:8887/CalculatorService[/url]"binding="wsHttpBinding"contract="TerryLee.WCFAddressing.Contract.ICalculator"></endpoint></client></system.serviceModel> </configuration>
结束语
0
分享
收藏
203篇文章,69W+人气,0粉丝
Ctrl+Enter 发布
发布
取消
推荐专栏更多
路由交换+安全+无线+优化+运维
共40章 | 51CTO夏杰
¥51.00 1666人订阅
网络工程师2.0进阶指南
共30章 | 姜汁啤酒
¥51.00 1566人订阅
自动化运维开发新概念
共20章 | 抚琴煮酒
¥51.00 430人订阅
高并发架构之路
共15章 | sery
¥51.00 507人订阅
前百度高级工程师的架构高可用实战
共15章 | 曹林华
¥51.00 462人订阅
猜你喜欢
扫一扫,领取大礼包
0
lihuijun
转载于:https://blog.51cto.com/terrylee/151946
WCF后传系列(5):深入WCF寻址Part 5—逻辑地址和物理地址相关推荐
- TerryLee技术专栏WCF后传正文 WCF后传系列(3):深入WCF寻址Part 3—消息过滤引擎...
概述 通过前面两篇的介绍,对Web服务寻址规范以及在WCF开发中终结点地址有了深入的认识.本文我们继续深入WCF寻址第三部分内容,当消息传入时,如何来确定匹配的终结点,就是我们本文要讲到的消息筛选引擎 ...
- WCF后传系列(3):深入WCF寻址Part 3—消息过滤引擎
概述 通过前面两篇的介绍,对Web服务寻址规范以及在WCF开发中终结点地址有了深入的认识.本文我们继续深入WCF寻址第三部分内容,当消息传入时,如何来确定匹配的终结点,就是我们本文要讲到的消息筛选引擎 ...
- WCF后传系列(2):深入WCF寻址Part 2—自定义寻址报头
概述 在WCF专题系列(1):深入WCF寻址Part1一文中,我们对Web服务寻址规范做了一些认识,了解了终结点引用和消息信息报头两种结构,该规范在Web服务中的地位举足轻重,后续我们会经常提到该规范 ...
- [导入]WCF后传系列(8):深度通道编程模型Part 1—设计篇
摘要: 从本质上说,WCF是一个通信服务框架,它允许我们使用不同的传输协议,使用不同的消息编码形式,跟不同的WS-*系列规范交互,而所有这些细节都是由通道堆栈来处理的.为了简化这些处理,在WCF中提供 ...
- [导入]WCF后传系列(6):消息如何传递之绑定Part 1
摘要: 每个服务终结点都包含一个地址Address.一个绑定Binding 和一个契约Contract.契约指定可用的操作,绑定指定如何与服务进行通信,而地址指定查找服务的位置,在WCF专题系列前5篇 ...
- android wcf 上传文件,第二篇 ( wcf 与 android 图片上传下载)
老规矩废话不多说,直接入主题 注:wcf 使用rest风格,传递json数据,图片是经过base64编码,android 使用common-codec-1.5.jar 进行base64编码 服务器端 ...
- Linux中的文件寻址,Linux文件寻址算法:逻辑地址到物理地址的转换
题目描述: 编写一个函数实现Linux文件寻址的算法,即读取文件当前位置到物理存储位置的转换函数,需要给出运行的测试数据,可以假设和模拟需要的数据和结构.即编写一个函数unsigned long lt ...
- IOS And WCF 上传文件
IOS And WCF Story 研究IOS上传到WCF图片的小功能,WCF实现服务端的文件上传的例子很多,单独实现IOS发送图片的例子也很多,但是两个结合起来的就很少了. 可以通过base64来上 ...
- WCF开发实战系列四:使用Windows服务发布WCF服务
WCF开发实战系列四:使用Windows服务发布WCF服务 (原创:灰灰虫的家http://hi.baidu.com/grayworm) 上一篇文章中我们通过编写的控制台程序或WinForm程序来为本 ...
最新文章
- Vue学习小札——2.6 组件参数校验与非props特性
- Spring MVC报异常:org.springframework.web.util.NestedServletException: Request processing failed
- 设计模式-扩展-父类对子类的要求
- The type List is not generic
- 下一个嵌入式大神,难道不是你吗?
- 计算机应用与基础进制,计算机应用基础选择题-删进制、字符题(2).docx
- index.wxss 导入不显示结果
- Lua游戏开发----游戏搭建
- 【编译原理笔记05】语法分析:FIRST集和FOLLOW集的计算,[非]递归的预测分析法,预测分析中的错误处理
- 产品学习---互联网形势
- 快速入门Flink (7) —— 小白都喜欢看的Flink流处理之DataSources和DataSinks(转载)
- git提交错分支怎么办
- NC65 用户密码重置
- Jdt-compiler是什么?有什么作用
- mysql数据库的封装
- MySQL最全整理(面试题+笔记+导图),面试大厂不再被MySql难倒
- 【经验篇】聊聊双非计算机硕士如何进大厂搞算法
- JSPX使用的几点注意
- ubuntu20.04美化
- web怎么将dwg转换图片_CAD转JPG图片,在线转换成高质量彩色图片
热门文章
- Android EditText+ListPopupWindow实现可编辑的下拉列表
- 利用泛型接口实现生成器
- Eclipse开发struts完全指南
- 蓝桥杯:入门训练 圆的面积
- Linux系统使用apt命令安装java
- 单片机c语言编程300例_趣味c语言编程100例(四)
- vasp安装包_【问题集锦】VASPamp;MedeA 第十一期
- php程序设计依赖注入_PHP控制反转和依赖注入
- mysql迅速搭建网页_Django + mysql 快速搭建简单web投票系统
- jsp 修改的员工select怎么_jdbc+jsp实现简单员工管理系统|chu