我们需要知道很多东西才能使用微软通信基础架构(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绑定允许传输层加密,这会防止元数据被暴露到互联网上。

mexHttpBinding协议 【发布元数据终结点】的更多相关文章

  1. 最近开始研究PMD(一款采用BSD协议发布的Java程序代码检查工具)

    PMD是一款采用BSD协议发布的Java程序代码检查工具.该工具可以做到检查Java代码中是否含有未使用的变量.是否含有空的抓取块.是否含有不必要的对象等.该软件功能强大,扫描效率高,是Java程序员 ...

  2. Dubbo 使用rest协议发布http服务

    演示用GitHub地址:https://github.com/suyin58/dubbo-rest-example 1       Dubbo_rest介绍 Dubbo自2.6.0版本后,合并了dub ...

  3. 阿里云ssl协议发布qq邮件

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx. ...

  4. WCF初探-6:WCF服务配置

    WCF服务配置是WCF服务编程的主要部分.WCF作为分布式开发的基础框架,在定义服务以及定义消费服务的客户端时,都使用了配置文件的方法.虽然WCF也提供硬编程的方式,通过在代码中直接设置相关对象的属性 ...

  5. WCF学习心得------(三)配置服务

    配置服务 配置服务概述 在设计和实现服务协定后,便可以进行服务的配置.在其中可以定义和自定义如何向客户段公开服务,包括指定可以找到服务的地址,服务用于发送和接受消息的传输和消息编码,以及服务需要的安全 ...

  6. WCF 配置服务 (02)

    配置服务概述 • 在设计和实现服务协定后,即可配置服务. 在其中可以定义和自定义如何向客户端公开服务,包括指定可以找到服务的地址.服务用于发送和接收消息的传输和消息编码,以及服务需要的安全类型. • ...

  7. WCF系列教程之WCF服务配置

    文本参考自:http://www.cnblogs.com/wangweimutou/p/4365260.html 简介:WCF作为分布式开发的基础框架,在定义服务以及消费服务的客户端时可以通过配置文件 ...

  8. C# WCF发布服务的元数据的方式

    发布服务元数据的方式有两种:一是基于HTTP-GET协议提供元数据,它是一种绝大多数平台都能支持的简单text-based协议:另一种是元数据交换终结点. 1.基于HTTP-GET协议 <?xm ...

  9. 解决WCF“接收对 http://xxx.svc 的 HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致"

    最近在工作中新加了一个接口,本地调试的时候,直接抛出“接收对 http://xxx.svc 的 HTTP 响应时发生错误.这可能是由于服务终结点绑定未使用 HTTP 协议造成的.这还可能是由于服务器中 ...

随机推荐

  1. linux定时器【转】

    转自:http://www.cnblogs.com/processakai/archive/2012/04/11/2442294.html 今天看书看到了关于alarm的一些用法,自己有在网上找了些资 ...

  2. php毫秒时间戳

    2014年5月23日 17:46:04 凡事还是得靠自己呀,网上太多坑 如果你的机器是 32位 的可以看这个: list($usec, $sec) = explode(' ', microtime() ...

  3. Axure RP Pro 7.0

    Axure RP Pro专为Rapid Prototype Design而生,它可以辅助产品经理快速设计完整的产品原型,并结合批注.说明以及流程图.框架图等元素将产品完整地表述给各方面设计人员,如UI ...

  4. Java IO流杂谈

    创建文件和删除文件(File类) import java.io.File; import java.io.IOException; public class T2 { public static vo ...

  5. 在k8s集群中,利用prometheus的jmx_exporter进行tomcat的JVM性能监控,并用grafana作前端展示

    查找了很多文档,没有完全达到我要求的, 于是,作了一定的调整,成现在这样. 操作步骤如下: 一,准备好两个文件. jmx_prometheus_javaagent-0.3.1.jar jmx_expo ...

  6. [转] HTML 获取屏幕、浏览器、页面的高度宽度

    本篇主要介绍Web环境中屏幕.浏览器及页面的高度.宽度信息. 目录 1. 介绍:介绍页面的容器(屏幕.浏览器及页面).物理尺寸与分辨率.展示等内容. 2. 屏幕信息:介绍屏幕尺寸信息:如:屏幕.软件可 ...

  7. 【SPOJ】QTREE6-Query on a tree VI

    题解 老年选手的代码康复计划QAQ 这题又没一遍A,难受 每个节点维护这个节点子树内联通块的大小 维护所有节点轻儿子的\(g[u][0]\)表示所有轻儿子白色的联通块总数 \(g[u][1]\)表示所 ...

  8. linux(centos)安装升级ruby

    参考文章:http://www.ruby-lang.org/zh_cn/documentation/installation/ 文章给出了不同平台的多种方法.我的是centos,我选择了一个比较简单的 ...

  9. 在谈PHP中的 抽象类(abstract class)和 接口(interface)

    一. 抽象类abstract class 1 .抽象类是指在 class 前加了 abstract 关键字且存在抽象方法(在类方法 function 关键字前加了 abstract 关键字)的类. 2 ...

  10. 访问url下载文件----python

    工作上有时候有需求,会下载pdf,doc,zip等文件,可以用以下方法,推荐使用第一种 下载文件: import urllib import urllib2 import requests url = ...