keep-alive 在使用http的时候,有1.0的协议,有1.1的协议,两者最大的区别就是1.0的协议会将connection设置为close,从而是一种短连接的状态,从而每次进行传输数据的时候...长连接短连接傻傻分不清楚,长连接好处那么多,我们就必须使用长连接么,并不一定,在进行健康检查的时候,就需要使用短连接,emmm,看来好像在健康检查的时候使用短连接也是可以的,但是想象一种场景,如果有几万个...指定使用http 1.0的协议,进行抓包,在不同的机器上进行请求: ? 在使用curl的时候,-I表示仅返回头文件,-0表示使用http1.0的协议,-H表示带http头属性,抓包结果如下: ?...当使用http1.0而不带http头呢? ? 抓包结果如下: ? 从上面可以看到,nginx偷偷修改了协议,但是在使用属性的时候,依然是根据客户端发送的http头直接进行的转发。...使用默认情况下的发送都是http1.1的协议,如下: ? 抓包结果如下: ? 只听说过升协议,从1.0升级到1.1,但是降协议,居然还有这种操作。。。只有你想不到,没有做不到。
HTTP的KeepAlive是开启还是关闭?...http://itindex.net/detail/50719-http-keepalive 1、KeepAlive的概念与优势 HTTP的KeepAlive就是浏览器和服务端之间保持长连接...当客户端发送一次请求,收到相应内容后,这个连接会保持一段时间,在该时间内的第二次就不需要再重新建立连接,就可以直接使用这次的连接来发送请求了,极大的提高了速度。 ...2、KeepAlive的劣势 是不是所有网站都应该开启KeepAlive了?答案肯定是不是的。KeepAlive在增加访问效率的同时,也会增加服务器的压力。 ...(2)如果考虑服务器压力,如果是静态页面,大量的调用js或者图片的话,建议开启KeepAlive;如果是动态网页,建议关闭KeepAlive。
Sampler-http请求之KeepAlive使用总结 测试环境 apache-jmeter-2.13 KeepAlive使用介绍 ?...说明: 1、Use KeepAlive 勾上,则表示为求连接设置请求头Connection: keep-alive,该配置对默认的HTTP实现不起作用,因为连接重用不受用户控制,对Apache HTTP...,需要再次建立TCP连接,高并发的情况下,会增加服务器资源消耗,对于keep-alive请求,则会告诉服务器,HTTP请求结束后,在条件允许的情况下,保持TCP连接,下次发送请求时,使用上次建立的TCP...至此,这个配置有啥用,就不用我说了吧 2、注意,这里KeepAlive是针对同一个线程而言的,其使用效果受到多 方面影响,如下: 客户端 Http实现 ?...HTTPClient4 使用Apache Http组件 HttpClient 4.x(推荐使用) Java 使用JVM提供的HTTP实现。
步骤: 1.把同样的WCF服务,在多个端口上"启动"(即同时运行多个wcf的实例,但每个实例都监听不同的端口) 2.用svcutil.exe生成的代理类,里面有N多构造函数的重载版本,观察一下类似下面的这个版本...,我们在web.config中的wcf配置节,做如下处理: http://localhost:8001/Astro/" binding...="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAstroService" contract="IAstroService...://localhost:8002/Astro/" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IAstroService...服务端的host中挑一个,生成代码类实例 大功告成,说白了就是把一个wcf的host分身成了3个,并且客户端随机调用3者之一
在默认的App.config中,使用的是WCF Framework定义好的wsHttpBinding默认配置,所以看不到binding配置节。 ? 配置节展开如下图: ?...wsdl 查看到公开的服务描述。 配置节展开如下图: ? 关于WCF中的地址和绑定,需要补充一下。...WCF中支持的传输协议包括HTTP、TCP、Peer network(对等网)、IPC(基于命名管道的内部进程通信)以及MSMQ(微软消息队列),每个协议对应一个地址类型: HTTP地址:http://...使用 HTTP 协议,Text/XML 编码方式。 WSHttpBinding: 比 BasicHttpBinding 更加安全,通常用于 non-duplex 服务通讯。...MsmqIntegrationBinding: 使用现有的消息队列系统进行跨机器通讯。如 MSMQ。 ------ 弱弱的分隔线 ----- OK,有了上面的基础,就让WCF风暴来的猛烈些吧。
得到的初步解决方案如下: 1、在Web端调用WCF服务使用后,未释放未关闭导致新的链接无法访问 2、增加默认的连接数,系统默认的链接数比较小 3、提供同一个WCF服务的不同实例 1、在Web...端调用WCF服务使用后,未释放未关闭导致新的链接无法访问 首先保证客户端每次建立的连接在使用完成后进行关闭。...那么请不要使用传统的using语句中来调用WCF,这里@dudu大神也曾经有遇到过这个问题 http://www.cnblogs.com/dudu/archive/2011/01/18/1938144....增加连接数量 在Http协议中,规定了同个Http请求的并发连接数最大为2. 这个数值,可谓是太小了。...此值设置后,只对以后发起的HTTP请求有效。
在上一篇"x.509证书在WCF中的应用(CS篇)"里,我们知道了如何在应用程序中,利用x.509证书来验证WCF的消息安全(没看过的朋友建议先看下,地址https://cloud.tencent.com...WCF宿主在IIS和普通应用程序里,原理虽然没什么不同,但在实际测试中发现,如果服务端与客户端都采用x.509证书来验证,服务端设置的自定义验证客户端证书的方法总是不起作用,无奈之下,只能在客户端采用了一种变相的方法来验证客户端证书.../颁发服务端证书和客户端证书,对这一块不熟悉的朋友,请参见"[原创图解]Win2003证书服务配置/客户端(服务端)证书申请/IIS站点SSL设置"一文(地址:http://www.cnblogs.com...--设置成Certificate后,启动WCF时,总是提示出错[ 服务“SslRequireCert”的 SSL 设置与 IIS“Ssl”的 SSL 设置不匹配。]无奈只能设置成None--> 的使用带来麻烦,这时可以采用服务端用x.509方式验证,客户端用经典的用户名/密码的方式来验证,详情可参见http://www.cnblogs.com/fineboy/archive
对于前者,WCF通过HttpModule实现了服务的寄宿,而对于后者,WCF的服务寄宿通过一个HttpHandler实现。...只有在ASP.NET兼容模式下,我们熟悉的一些ASP.NET机制才能被我们使用,比如通过HttpContext的请求下下文;基于文件或者Url的授权;HttpModule扩展;身份模拟(Impersonation...众所周知,HTTP是无状态(Stateless)的传输协议,对服务端来说,它收到的每个HTTP请求都是全新的请求。...那么对于ASP.NET兼容模式下的WCF也一样,要想让服务端能够识别会话,就需要让每个服务调用的HTTP请求携带Session的识别信息,我们也可以通过传递Cookie的方式来解决这个问题。...对于WCF来说,Cookie传递能够通过Binding来控制,对于WsHttpBinding来说,默认情况下并不允许Cookie的传递。
WCF系统内置绑定列表 绑定 配置元素 说明 传输协议 编码格式 BasicHttpBinding 一个绑定,适用于与符合 WS-Basic Profile的Web...此绑定使用HTTP作为传输协议,并使用文本/XML作为默认的消息编码 HTTP/HTTPS Text,MTOM WSHttpBinding wsHttpBinding> 一个安全且可互操作的绑定,适合于非双工服务约定...HTTP/HTTPS Text,MTOM WS2007HttpBinding 一个安全且可互操作的绑定,可为Security,ReliableSession的正确版本和...并支持联合安全性 HTTP/HTTPS Text,MTOM NetTcpBinding 一个安全且经过优化的绑定,适用于WCF应用程序之间跨计算机的通信 TCP Binary...NetNamedPipeBinding 一个安全,可靠且经过优化的绑定,适用于WCF应用程序之间跨计算机的通信 IPC Binary MsmqIntegrationBinding
WCF在跨域传输使用了两种模型的方法调用:一种是同步模型,这种模型显然对那些需要大量操作时间的方法调用(如从数据库中获取大量数据时)是一种痛苦的选择。...在WCF中引入了一种专门针对数据流进行优化编码的MTOM模型。下面我们使用编码模型和调用模型三种方式来改写文件流的传输,以提高WCF应用程序的性能。...在WCF中MTOM模型的操作契约中只能使用单个Stream对象作为参数或者返回类型。 ?...这种方法的内部处理中使用线程池中的一个线程接管这个调用,程序可以获得异步调用的返回信息而继续向前执行。 WCF编程模型中采用了一种让同步传输中使用异步回调的方式来提高应用程序的响应。...在这儿我们仍然使用第二种模型的WCF框架,只是我们这儿使用了FileStream对象BeginWrite();BeginRead()方法及相应的EndWrite();EndRead()方法。
="WCF_Find_Error_Lib.IService" bindingConfiguration="WsHttpBinding_IService">...wsHttpBinding的Message安全模式,客户端凭据默认为Windows 运行客户端,抛出异常: ?...抛出异常的原因是,Transport模式支持HTTPS,TCP,ICP,MSMQ,而这里终结点地址是http://localhost/S,没有使用HTTPS协议。...2 Message安全模式(本机调试) wsHttpBinding的Message安全模式,客户端凭据默认为Windows。...抛出异常的原因是,wsHttpBinding的Message安全模式不支持https协议,改为http协议则正常。 但是,当服务端的客户端凭据配置与客户端不一致时,也可以正常执行,并获得正常的结果。
第21集 WCF里面的Binding Bindings in WCF 其实不太了解为什么第21集才讲这个Binding,下面都是一些概念性的东西,不过作为一个入门视频,了解一下也无妨吧。...binding的值是wsHttpBinding,后续会详细讲。...WCF里面的Binding定义了客户端与服务端交流的方式。他会影响到以下三个方面。 a. 传输协议(比如http,或者tcp,NamedPipe,MSMQ) b....信息的编码方式(比如普通的text/xml或者二进制数据) c. 其他的一些协议约定(比如是否要使用可靠的消息传输,是否支持事务) 2. 如何选择Binding。...按照工作中实际的使用情况,用的比较多的是wsHttpBinding。 Thank you!
至于契约名称和命名空间的含义和作用,在本人拙著《WCF技术剖析(卷1)》第4章,在这里我们将契约名称和命名空间设置成CalculatorService和http://www.artech.com/)。...WCF中具有一系列的系统定义绑定,比如BasicHttpBinding、WsHttpBinding、NetTcpBinding等,《WCF技术剖析(卷1)》第3章提供对绑定的详细介绍; 契约(Contract...具体的地址为http://127.0.0.1:9999/calculatorservice,采用了WSHttpBinding,并指定了服务契约的类型ICalculator。...图4 通过HTTP-GET的方式获取WCF服务的元数据 在进行真正的WCF应用开发时,一般不会直接通过编码的方式进行终结点的添加和服务行为的定义,而是通过配置的方式进行。...在这种情况下,可以直接使用VS提供的配置工具。
第17集 WCF中未经处理的异常 Unhandled exceptions in WCF 这集讲一下WCF中服务端如果出现异常会怎么样。还是用上集的demo。...首先修改服务端的app.config 配置文件,先使用basicHttpBinding 使用wsHttpBinding 先改配置文件的endpoint节点 wsHttpBinding" contract="CalculatorService.ICalculatorService...起来,然后更新服务端的服务引用,可以看到如下: http://localhost:8080/" binding="wsHttpBinding"...这集学习了不同Binding中WCF如何处理服务端的异常。 ThankYou!
换句话说,终结的逻辑地址是必须的,如何物理地址没有指定的,默认使用逻辑地址作为物理地址。...作为最终的监听地址;而Unique则根据ListenUri采用不同的策略保证最终使用的监听地址是唯一的。...而对于如何确保监听地址的唯一性,WCF采用如下的策略: 如果采用TCP作为传输协议,在不采用端口共享的情况下,会选择一个未被使用的端口作为最终监听地址的端口一确保地址的唯一性 如果采用TCP作为传输协议...,从中我们可以看出,对于ListenUriMode.Unique的三个终结点:第2、4、5个,第2个终结点采用了基于HTTP的BasicHttpBinding,WCF通过加了一个GUID后缀确保监听地址的唯一性...;使用了基于NetTcpBinding的第4个终结点,通过使用一个可用的端口(1119)确保监听地址的唯一性;而对于通过采用了NetTcpBinding的第5个终结点,由于采用了端口共享,不能改变其端口
问题是这样的,他说他采用ASP.NET应用程序的方式对定义的WCF服务进行寄宿(Hosting),并使用配置的方式对服务的BaseAddress进行了设置,但是在创建ServiceHost的时候却抛出InvalidOperationException...,在/配置节中为服务添加了一个Scheme为http的BaseAddress:http://127.0.0.1:3721/services,那么终结点的地址就可以定义为基于该...with binding WSHttpBinding....从错误消息可以看出,在进行地址的组合时,由于没有找到适合绑定类型(WsHttpBinding)Scheme(http)的BaseAddress,导致了异常的抛出。...对于后者,.svc文件得地址就是WCF服务的BaseAddress,所以WCF会忽略BaseAddress的配置。 那么WCF采用怎样的方式来判断当前服务寄宿的方式是基于IIS呢,还是其他呢?
Configuration Editor),极大的方便开发者进行服务配置,接下来将演示如何对一个WCF服务程序进行配置: 所有与WCF服务有关的文件类,全都引入System.ServiceModel命名空间...服务宿主程序,这里使用控制台 ?...studio 菜单中的工具选项下的WCF服务配置编辑器,点击即可打开。...根据程序的通讯模式选择不同的通讯类型,这里采用HTTP (5)、服务端与客户端的通信模式 i、基本的Web服务互操作性:设置当前程序的通信模式为请求与答复模式,具体请参考WCF系列教程之消息交换模式之请求与答复模式...此处选用本地Ip地址,端口号为666,ok主机基地址设置完毕,对应host节点中的baseadress节点中的配置 (8)、修改终结点中的binding属性 修改默认终结点的绑定类型为wsHttpBinding
为此我们我们写了一个简单的方法,用于列出一个具体的绑定对象所有的绑定元素,在介绍一个个具体的系统绑定中,我会使用该方法: 1: static void ListAllBindingElements...和HttpTransportBindingElement表明WsHttpBinding和BasicHttpBinding一样采用基于文本的编码方式和基于HTTP的传输协议。...从对于传输协议的支持来看,它们都就是基于HTTP或者HTTPS的绑定;从对标准的支持看来,BasicHttpBinding提供对WS-BP 1.1的支持,WsHttpBinding和WsDualHttpBinding...,在性能上较之基于文本的编码会有较大的提高;此外,由于和HTTP协议不同,TCP本身就是一个基于双工通信的协议,所以和WsDualBinding一样可以用于基于双工消息交换模式的WCF应用中。...WCF中的绑定模型: [WCF中的Binding模型]之一: Binding模型简介 [WCF中的Binding模型]之二: 信道与信道栈(Channel and Channel Stack) [WCF
对于WCF客户端来说,如果进行基于会话信道的服务调用,有一些问题需要引起足够的重视,如果使用不当,不但影响客户端本身的服务调用,还会对服务处理请求的吞吐量造成很大的影响。...本例使用我们熟悉的计算服务例子,在服务寄宿的时候采用WsHttpBinding,下面是客户端程序。...1: Binding binding = new WsHttpBinding(); EndpointAddress address = new EndpointAddress("http://127.0.0.1...对服务的并发会话的限制给WCF客户端提出了一个要求,那就是在服务代理不再使用的情况下,应该及时将其关闭。...以上面例子使用的WsHttpBinding为例,只有WsHttpBinding的安全(Security)或可靠会话(Reliable Session)开启的情况下,创建的信道才具有会话的特性,否则创建出来的信道是不能支持信道的