basichttpbinding和wshttpbinding是两个基于SOAP的绑定,与REST有很大的不同。...另一方面,您不能只使用浏览器浏览到wshttpbinding端点并查看XML(例如这种绑定的服务如果通过形如http://localhost:端口/testservice.svc的地址访问,将会报http400...basichttpbinding和wshttpbinding的区别如下: basichttpbinding是非常基本的绑定-soap 1.1,在安全性方面不多,在功能方面不多,但与现有的任何SOAP...客户机都兼容——>互操作性好,功能和安全性差 wshttpbinding是一个全面的绑定,它支持大量的ws-*功能和标准-它有更多的安全功能,您可以使用会话连接,您可以使用可靠的消息传递,您可以使用事务控制...,您可以使用流式处理大数据,但wshttpbinding也有点“笨重”并且当你的消息在网络中传输时,会有很多开销。
现在回过头来看看IDE提供的Wcf Service Library项目模板中的默认服务端配置文件——App.config里面究竟有什么秘密。...在默认的App.config中,使用的是WCF Framework定义好的wsHttpBinding默认配置,所以看不到binding配置节。 ? 配置节展开如下图: ?...wsdl 查看到公开的服务描述。 配置节展开如下图: ? 关于WCF中的地址和绑定,需要补充一下。...WSDualHttpBinding: 和 WSHttpBinding 相比,它支持 duplex 类型的服务。...MsmqIntegrationBinding: 使用现有的消息队列系统进行跨机器通讯。如 MSMQ。 ------ 弱弱的分隔线 ----- OK,有了上面的基础,就让WCF风暴来的猛烈些吧。
步骤: 1.把同样的WCF服务,在多个端口上"启动"(即同时运行多个wcf的实例,但每个实例都监听不同的端口) 2.用svcutil.exe生成的代理类,里面有N多构造函数的重载版本,观察一下类似下面的这个版本...,我们在web.config中的wcf配置节,做如下处理: wsHttpBinding" bindingConfiguration="WSHttpBinding_IAstroService" contract="IAstroService...服务端的实例,配置多个name的endpoint节点 3.修改客户端的调用代码 把原来类似这样的代码: using (AstroServiceClient _client = new AstroServiceClient...服务端的host中挑一个,生成代码类实例 大功告成,说白了就是把一个wcf的host分身成了3个,并且客户端随机调用3者之一
WCF在跨域传输使用了两种模型的方法调用:一种是同步模型,这种模型显然对那些需要大量操作时间的方法调用(如从数据库中获取大量数据时)是一种痛苦的选择。...显然这种模型给了我们很好的编程和使用体验。...在WCF中引入了一种专门针对数据流进行优化编码的MTOM模型。下面我们使用编码模型和调用模型三种方式来改写文件流的传输,以提高WCF应用程序的性能。...在WCF中MTOM模型的操作契约中只能使用单个Stream对象作为参数或者返回类型。 ?...="Mtom" textEncoding="utf-8" > wsHttpBinding> 注意:在这种方式下使用同步和异步方法没有明显的差别,后来我在分析了
在上一篇"x.509证书在WCF中的应用(CS篇)"里,我们知道了如何在应用程序中,利用x.509证书来验证WCF的消息安全(没看过的朋友建议先看下,地址https://cloud.tencent.com...WCF宿主在IIS和普通应用程序里,原理虽然没什么不同,但在实际测试中发现,如果服务端与客户端都采用x.509证书来验证,服务端设置的自定义验证客户端证书的方法总是不起作用,无奈之下,只能在客户端采用了一种变相的方法来验证客户端证书...废话不多说,还是来看具体步骤吧: 开发环境: Windows2003 + VS2008(SP1) 一.申请/颁发服务端证书和客户端证书 默认情况下,用makecert制作的证书,我经过多次尝试...欢迎转载,转载请注明来自cnblogs"菩提树下的杨过" 编后语: 本文演示了如何将WCF Host在IIS中,并对服务端和客户端都采用x.509证书方式来验证,当然这种方式要求每个客户端机器上都必须安装服务端颁发的证书...在互联网环境下,这可能会给客户端的使用带来麻烦,这时可以采用服务端用x.509方式验证,客户端用经典的用户名/密码的方式来验证,详情可参见http://www.cnblogs.com/fineboy/archive
虽然是二进制数据格式,但并没有因此变得复杂,开发人员通过按照一定的语法定义结构化的消息格式,然后送给命令行工具,工具将自动生成相关的类,可以支持java、c++、python等语言环境。...而且可能发送很大的数据流,比如文件。显然消息边界的确认问题和protobuf库无关,还得自己搞定。...protobuf的dotNet实现protobuf-net, 支持WCF的DataContact,WCF程序几乎不需要什么修改就能使用。...一个最小的可以工作的例子就是protobuf-net提供的(client, server),它使用的是共享契约的方式,通过WCF的配置方式,添加一个Endpoint-behavior,引用一个自定义的WCF...的KnownType,Protobuf使用ProtoInclude http://stackoverflow.com/questions/6541718/protobuf-net-wcf-multiple-nested-generic-abstract-objects-serialization-v282
得到的初步解决方案如下: 1、在Web端调用WCF服务使用后,未释放未关闭导致新的链接无法访问 2、增加默认的连接数,系统默认的链接数比较小 3、提供同一个WCF服务的不同实例 1、在Web...端调用WCF服务使用后,未释放未关闭导致新的链接无法访问 首先保证客户端每次建立的连接在使用完成后进行关闭。...那么请不要使用传统的using语句中来调用WCF,这里@dudu大神也曾经有遇到过这个问题 http://www.cnblogs.com/dudu/archive/2011/01/18/1938144....,这种方式其实和上面那种大同小异,也是可以封装的,系统中暂且就使用的上面的方式。...总结 暂时这三种方式有效地防止了WCF服务的再次挂掉,至少最近几天服务一直在稳定的运行,没有太大的异常,很是让人欣慰。不知道针对WCF服务的处理是否还有其他方式,也让博客园的大牛们来指点一二吧。
在《基于IIS的WCF服务寄宿(Hosting)实现揭秘》中,我们谈到在采用基于IIS(或者说基于ASP.NET)的WCF服务寄宿中,具有两种截然不同的运行模式:ASP.NET并行(Side by Side...对于前者,WCF通过HttpModule实现了服务的寄宿,而对于后者,WCF的服务寄宿通过一个HttpHandler实现。...只有在ASP.NET兼容模式下,我们熟悉的一些ASP.NET机制才能被我们使用,比如通过HttpContext的请求下下文;基于文件或者Url的授权;HttpModule扩展;身份模拟(Impersonation...svc的定义和Web.config。...对于WCF来说,Cookie传递能够通过Binding来控制,对于WsHttpBinding来说,默认情况下并不允许Cookie的传递。
第17集 WCF中未经处理的异常 Unhandled exceptions in WCF 这集讲一下WCF中服务端如果出现异常会怎么样。还是用上集的demo。...首先修改服务端的app.config 配置文件,先使用basicHttpBinding 和 5 点击计算,得到4....下面我们来试验一下使用wsHttpBinding 先改配置文件的endpoint节点 wsHttpBinding" contract="CalculatorService.ICalculatorService...这集学习了不同Binding中WCF如何处理服务端的异常。 ThankYou!
此绑定使用HTTP作为传输协议,并使用文本/XML作为默认的消息编码 HTTP/HTTPS Text,MTOM WSHttpBinding wsHttpBinding> 一个安全且可互操作的绑定,适合于非双工服务约定...HTTP/HTTPS Text,MTOM WS2007HttpBinding 一个安全且可互操作的绑定,可为Security,ReliableSession的正确版本和...SOAP媒介进行的通信 HTTP Text,MTOM WSFederationHttpBinding 一个安全且可互操作的绑定,支持WS联合协议并使联合中的组织可以高效地对用户进行身份验证和授权...并支持联合安全性 HTTP/HTTPS Text,MTOM NetTcpBinding 一个安全且经过优化的绑定,适用于WCF应用程序之间跨计算机的通信 TCP Binary... 一个绑定,适用于WCF应用程序和现有消息队列(也称为MSMQ)应用程序之间跨计算机的通信 MSMQ Binary NetMsmqBinding <netMsmqBinding
第21集 WCF里面的Binding Bindings in WCF 其实不太了解为什么第21集才讲这个Binding,下面都是一些概念性的东西,不过作为一个入门视频,了解一下也无妨吧。...binding的值是wsHttpBinding,后续会详细讲。...构建一个简单的HelloService服务,然后分别用basicHttpBinding和netTcpBinding,配置文件分别是 的编码方式(比如普通的text/xml或者二进制数据) c. 其他的一些协议约定(比如是否要使用可靠的消息传输,是否支持事务) 2. 如何选择Binding。...按照工作中实际的使用情况,用的比较多的是wsHttpBinding。 Thank you!
WCF包含四种类型的契约:服务契约、数据契约、消息契约和错误契约,这里着重于服务契约。...至于契约名称和命名空间的含义和作用,在本人拙著《WCF技术剖析(卷1)》第4章,在这里我们将契约名称和命名空间设置成CalculatorService和http://www.artech.com/)。...WCF中具有一系列的系统定义绑定,比如BasicHttpBinding、WsHttpBinding、NetTcpBinding等,《WCF技术剖析(卷1)》第3章提供对绑定的详细介绍; 契约(Contract...在这种情况下,可以直接使用VS提供的配置工具。...寄宿IIS的服务寄宿比较简单,基本上包含两个步骤:为WCF服务创建.svc文件和创建IIS虚拟目录。
Configuration Editor),极大的方便开发者进行服务配置,接下来将演示如何对一个WCF服务程序进行配置: 所有与WCF服务有关的文件类,全都引入System.ServiceModel命名空间...服务宿主程序,这里使用控制台 ?...服务契约和服务类和宿主全部搭建成功,下面开始配置WCF服务 4.通过WCF服务配置编辑器(Microsoft Service Configuration Editor)来配置服务程序,选择visual...studio 菜单中的工具选项下的WCF服务配置编辑器,点击即可打开。...点击完成,就完成了一个服务配置文件的创建,接下来就开始配置各个节点和属性元素。 (8)、添加基地址 配置服务的基地址,点击左边服务菜单项的主机选项,然后点击右下角的新建按钮添加基地址。 ?
="WCF_Find_Error_Lib.IService" bindingConfiguration="WsHttpBinding_IService">...wsHttpBinding的Message安全模式,客户端凭据默认为Windows 运行客户端,抛出异常: ?...抛出异常的原因是,Transport模式支持HTTPS,TCP,ICP,MSMQ,而这里终结点地址是http://localhost/S,没有使用HTTPS协议。...服务端和客户端配置的安全模式不一样时 服务端安全模式修改为: 的原因是,wsHttpBinding的Message安全模式不支持https协议,改为http协议则正常。 但是,当服务端的客户端凭据配置与客户端不一致时,也可以正常执行,并获得正常的结果。
为此我们我们写了一个简单的方法,用于列出一个具体的绑定对象所有的绑定元素,在介绍一个个具体的系统绑定中,我会使用该方法: 1: static void ListAllBindingElements...和HttpTransportBindingElement表明WsHttpBinding和BasicHttpBinding一样采用基于文本的编码方式和基于HTTP的传输协议。...还需要基于多次服务访问的事务(将多次服务调用纳入同一个事务之中);不仅仅需要基于单一平台的事务支持,还需要跨平台的事务(比如将基于.NET平台的WCF服务调用和基于J2EE平台的Web服务调用纳入同一个事务中...所以从互操作角度讲,WsHttpBinding可以和满足这些标准的Web Service进行互操作。...,在性能上较之基于文本的编码会有较大的提高;此外,由于和HTTP协议不同,TCP本身就是一个基于双工通信的协议,所以和WsDualBinding一样可以用于基于双工消息交换模式的WCF应用中。
对于WCF客户端来说,如果进行基于会话信道的服务调用,有一些问题需要引起足够的重视,如果使用不当,不但影响客户端本身的服务调用,还会对服务处理请求的吞吐量造成很大的影响。...二、服务代理的关闭与并发会话(Concurrent Sessions)的限制 基于会话信道服务调用须要注意的第一个问题和WCF流量限制有关,为了使读者对这个问题先有一个直观认识,我们照例通过一个简单的实验来重现须要解决的问题...本例使用我们熟悉的计算服务例子,在服务寄宿的时候采用WsHttpBinding,下面是客户端程序。...对服务的并发会话的限制给WCF客户端提出了一个要求,那就是在服务代理不再使用的情况下,应该及时将其关闭。...以上面例子使用的WsHttpBinding为例,只有WsHttpBinding的安全(Security)或可靠会话(Reliable Session)开启的情况下,创建的信道才具有会话的特性,否则创建出来的信道是不能支持信道的
问题是这样的,他说他采用ASP.NET应用程序的方式对定义的WCF服务进行寄宿(Hosting),并使用配置的方式对服务的BaseAddress进行了设置,但是在创建ServiceHost的时候却抛出InvalidOperationException...我意识到这可能和WCF中用于判断服务寄宿方式的逻辑有关,于是我让这位朋友将相同的服务寄宿代码和配置迁移到GUI程序或者Console应用中,看看是否正常。...试图将BaseAddress和RelativeAddress进行组合生成AbsoluteAddress的时候。...从错误消息可以看出,在进行地址的组合时,由于没有找到适合绑定类型(WsHttpBinding)Scheme(http)的BaseAddress,导致了异常的抛出。...对于后者,.svc文件得地址就是WCF服务的BaseAddress,所以WCF会忽略BaseAddress的配置。 那么WCF采用怎样的方式来判断当前服务寄宿的方式是基于IIS呢,还是其他呢?
在WCF中,每个终结点都包含两个不同的地址——逻辑地址和物理地址。逻辑地址就是终结点Address属性表示的地址。...换句话说,终结的逻辑地址是必须的,如何物理地址没有指定的,默认使用逻辑地址作为物理地址。...而对于如何确保监听地址的唯一性,WCF采用如下的策略: 如果采用TCP作为传输协议,在不采用端口共享的情况下,会选择一个未被使用的端口作为最终监听地址的端口一确保地址的唯一性 如果采用TCP作为传输协议...;使用了基于NetTcpBinding的第4个终结点,通过使用一个可用的端口(1119)确保监听地址的唯一性;而对于通过采用了NetTcpBinding的第5个终结点,由于采用了端口共享,不能改变其端口...拦截、转发工具[上篇] WCF后续之旅(13):创建一个简单的SOAP Message拦截、转发工具[下篇] WCF后续之旅(14):TCP端口共享 WCF后续之旅(15): 逻辑地址和物理地址
"> 21 wcf" binding="wsHttpBinding" contract="WCF.ICalculateService"...bindingConfiguration="WSHttpBinding_ICalculateService" name="WCF.ICalculateService"/> 22...可以使用下列语法,从命令行中使用 svcutil.exe 工具来进行此操作: svcutil.exe http://jimmycntvs:90/WCF/CalculateService.svc?...App.Config中 这一步的目的在于利用svcutil.exe这个工具,生成客户端调用所需的代理类和配置文件 11.客户端代码的编写 1 using System; 2 using System.Collections.Generic...当然WCF深入研究下去,远比这个复杂,这篇文章主要是为了消除大家对新技术的恐惧,快速上手WCF的使用,其实MS每次推出的新技术,听上去蛮吓人,用起来都很简单的.
领取专属 10元无门槛券
手把手带您无忧上云