mexHttpBinding协议 【发布元数据终结点】
我们需要知道很多东西才能使用微软通信基础架构(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协议 【发布元数据终结点】的更多相关文章
- 最近开始研究PMD(一款采用BSD协议发布的Java程序代码检查工具)
PMD是一款采用BSD协议发布的Java程序代码检查工具.该工具可以做到检查Java代码中是否含有未使用的变量.是否含有空的抓取块.是否含有不必要的对象等.该软件功能强大,扫描效率高,是Java程序员 ...
- Dubbo 使用rest协议发布http服务
演示用GitHub地址:https://github.com/suyin58/dubbo-rest-example 1 Dubbo_rest介绍 Dubbo自2.6.0版本后,合并了dub ...
- 阿里云ssl协议发布qq邮件
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx. ...
- WCF初探-6:WCF服务配置
WCF服务配置是WCF服务编程的主要部分.WCF作为分布式开发的基础框架,在定义服务以及定义消费服务的客户端时,都使用了配置文件的方法.虽然WCF也提供硬编程的方式,通过在代码中直接设置相关对象的属性 ...
- WCF学习心得------(三)配置服务
配置服务 配置服务概述 在设计和实现服务协定后,便可以进行服务的配置.在其中可以定义和自定义如何向客户段公开服务,包括指定可以找到服务的地址,服务用于发送和接受消息的传输和消息编码,以及服务需要的安全 ...
- WCF 配置服务 (02)
配置服务概述 • 在设计和实现服务协定后,即可配置服务. 在其中可以定义和自定义如何向客户端公开服务,包括指定可以找到服务的地址.服务用于发送和接收消息的传输和消息编码,以及服务需要的安全类型. • ...
- WCF系列教程之WCF服务配置
文本参考自:http://www.cnblogs.com/wangweimutou/p/4365260.html 简介:WCF作为分布式开发的基础框架,在定义服务以及消费服务的客户端时可以通过配置文件 ...
- C# WCF发布服务的元数据的方式
发布服务元数据的方式有两种:一是基于HTTP-GET协议提供元数据,它是一种绝大多数平台都能支持的简单text-based协议:另一种是元数据交换终结点. 1.基于HTTP-GET协议 <?xm ...
- 解决WCF“接收对 http://xxx.svc 的 HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致"
最近在工作中新加了一个接口,本地调试的时候,直接抛出“接收对 http://xxx.svc 的 HTTP 响应时发生错误.这可能是由于服务终结点绑定未使用 HTTP 协议造成的.这还可能是由于服务器中 ...
随机推荐
- lucene中文分词——(四)
1.分析器的执行过程:
- linux笔记_day12_shell编程
1.shell中如何进行算术运算 A=1 B=2 1)let 算术运算表达式 let C=$A+$B 2)$[算术运算表达式] C=$[$A+$B] 3)$(($A+$B)) 4) expr 算术表达 ...
- 使用phpstorm+wamp实现php代码实时调试审计
转载自:https://www.bugbank.cn/q/article/5853afaffc0bf4f010ee6ac3.html php调试有N多好用的工具,最近研究到phpstorm配合wamp ...
- python数据库操作 - MySQL入门【转】
python数据库操作 - MySQL入门 python学院 2017-02-05 16:22 PyMySQL是Python中操作MySQL的模块,和之前使用的MySQLdb模块基本功能一致,PyMy ...
- 深入了解mitmproxy(二)
主题 修改request或者response内容 介绍 mitmdump无交互界面的命令,与python脚本对接,来源于mitmproxy支持inline script,这里的script指 ...
- 10 Go 1.10 Release Notes
Go 1.10 Release Notes Introduction to Go 1.10 Changes to the language Ports Tools Default GOROOT &am ...
- 局域网搭建https局域网
局域网搭建https局域网 1.使用tomcat作为服务器搭建局域网访问https 需要使用java jdk\bin下的keytool.exe来创建证书 使用命令:keytool -genkenpai ...
- XSS绕过学习
目录 1绕过单引号 2绕过 SCRIPT 过滤 3使用 IMG 源 4使用制表符 换行符和回车符 5使用空白符 6双引号配对的 bug 7绕过css过滤器 8不全面的过滤器 9转义字符 10编码 ...
- Win7系统Chrome浏览器缓存查看技巧介绍(转)
1.Chrome下提供了一个命令chrome://cache,可以查看到保留下来的缓存; 2.但是,当你点击缓存文件,Chrome却并非打开缓存源文件,而是如图所示的二进制编码文件; 3.在Win7系 ...
- django中的view测试和models测试样例
感觉用model_mommy比factory_boy要好些. 如果Models.py如下: from django.db import models from django.contrib.auth. ...