WCF 附录 高级主题
2011-06-11 09:27 DanielWise 阅读(3180) 评论(3) 编辑 收藏 举报我们需要知道很多东西才能使用微软通信基础架构(WCF)来开发应用程序。尽管这本书已经试着囊括普通开发人员需要了解的WCF所有内容,也还是有一些内容没有讨论到。附录的主要目的是填充这些罅隙。
发布元数据终结点
我们已。经在第一章”基础”中讨论过元数据。这次讨论对使用元数据暴露服务的配置信息做了一个简要介绍。然而,它并没有详细说明元数据到底是如何被暴露的。稍后我们介绍第四章“绑定”的概念,但是仅限于讨论那些用来暴露服务的绑定;我们不关注元数据绑定。WCF提供四种额外绑定: mexHttpBinding, mexHttpsBinding, mexTcpBinding和mexNamedPipeBinding绑定。这些绑定在不同传输协议上使用元数据暴露服务配置信息。
小提示 以”mex”开始的绑定暴露服务元数据 Windows 通信基础架构对那些所有用来暴露元数据的绑定加上”mex”前缀。 |
mexHttpBinding
mexHttpBinding绑定的存在是为了使用它在HTTP传输协议上暴露元数据。如果在basicHttpBinding, wsHttpBinding, ws2007HttpBinding绑定上或者任何包含了HttpTransportBindingElement绑定元素的自定义绑定上暴露服务的话那么使用它是合适的。对大多数情况来说mexHttpBinding绑定就是你的选择因为它提供了对你的元数据的最广泛地访问。这意味着元数据可以通过客户端工具如svcutil.exe 和Visual Studio 2005通过添加服务引用来直接访问。它也意味着元数据可以使用其他HTTP客户端访问,这包括IE, 火狐以及Opera 等浏览器。取决于你的安全配置,这可能不是必须的(基础Http协议是不支持安全的,你可以使用HTTPS或者证书等进行加密)。例如,如果你想使用netNamePipeBinding绑定在本机内进行通信,你可能不想使用这个绑定(这是为神马呢? 因为有mexNamedPipeBinding可以选择呀)。
mexNamedPipeBinding
mexNamedPipeBinding绑定的存在是为了使用它在命名管道传输协议上暴露元数据。这个绑定为那些使用netNamedPipeBinding绑定或者任何包含NamedPipeBinding绑定的绑定元素的自定义绑定暴露服务元数据。mexNamedPipeBinding绑定不将元数据暴露到互联网上而且保证元数据仅可以从本机访问。WCF特别地限制命名管道只能用于本机通信。这已经在第四章的”两个.NET 应用程序之间的本机通信”部分讨论过了。
mexTcpBinding
mexTcpBinding绑定的存在是为了使用它在TCP传输协议上暴露元数据。这个绑定为那些使用netTcpBinding或者netPeerTcpBinding绑定或者任何基于TcpTransportBinding绑定元素的自定义绑定暴露。当使用mexTcpBinding绑定的端口共享时需要考虑一个问题。mexTcpBinding绑定使用的底层TcpTransportBindingElement绑定元素禁用了端口共享。如果需要端口共享,基于mexTcpBinding绑定的自定义绑定可以在传输协议上将PortSharingEnabled属性设置为true. 想要了解更多内容,查看附录中”在服务间共享端口”部分。
mexHttpsBinding
mexHttpsBinding绑定的存在是为了使用它在使用SSL/TLS传输加密(HTTPS)的HTTP传输协议上暴露元数据。与mexHttpBinding绑定类似,mexHttpsBinding用来与basicHttpBinding, wsHttpBinding, ws2007HttpBinding绑定或者任何基于HttpTransportBindingElement绑定元素的自定义绑定一起使用。使用mexHttpsBinding绑定允许传输层加密,这会防止元数据被暴露到互联网上。
作者:DanielWise
出处:http://www.cnblogs.com/danielWise/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述