.NET4.5中WCF中默认生成的basicHttpsBinding的研究

起因:

使用.net4.5建立了一个空白的WCF服务。默认使用的绑定配置是basicHttpsBinding。

问题发现:

  1、用客户端进行服务引用,生成了默认的配置文件,其中绑定配置是basicHttpBinding。

  2、因为需要单次传递大批量数据,所以修改绑定配置,如下: 

   <basicHttpBinding>
        <binding name="BasicHttpBinding_IService" closeTimeout="00:10:00" receiveTimeout="00:10:00"
                sendTimeout="00:10:00"  maxReceivedMessageSize="2147483647" maxBufferSize="2147483647" >
          <readerQuotas maxDepth="2000000" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
        </binding>
      </basicHttpBinding>

  3、运行测试,总是提示“413 Request Entity Too Large”。网上查找资料,基本都是说修改默认的Size,默认为4M, 修改到足够大就可以了。但是我明明已经在服务端和客户端都改了啊???

问题解决:

  研究了很久才解决,直接说结果吧。

  在.net 4.5的框架下,默认生成的绑定配置是basicHttpsBinding,是Https,多了一个S。

  然而我在服务端修改的是HTTPS里的绑定配置,没写HTTP的绑定配置,而在客户端,则是用的HTTP。 所以最终使用的是默认的HTTP配置,大小是4M,数据量一大,自然报错。

  说到这里,解决方法就很明显了。

结尾:

  HTTP方式效率还是低,明天使用TCP试试。

  

时间: 2024-12-12 05:22:08

.NET4.5中WCF中默认生成的basicHttpsBinding的研究的相关文章

跟我一起学WCF(10)——WCF中事务处理

一.引言 好久没更新,总感觉自己欠了什么一样的,所以今天迫不及待地来更新了,因为后面还有好几个系列准备些,还有很多东西需要学习总结的.今天就来介绍下WCF对事务的支持. 二.WCF事务详解 2.1 事务概念与属性 首先,大家在学习数据库的时候就已经接触到事务这个概念了.所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单元.例如,银行转账功能,这个功能涉及两个逻辑操作 从一个账户A中扣钱 另一个账户B增加对应的钱. 现实生活中,这两个操作需要要么都执行,要么都不

Entity Framework在WCF中序列化的问题

问题描述 如果你在WCF中用Entity Framework来获取数据并返回实体对象,那么对下面的错误一定不陌生. 接收对 http://localhost:5115/ReService.svc 的 HTTP 响应时发生错误.这可能是由于服务终结点绑定未使用 HTTP 协议造成的. 这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致.有关详细信息,请参见服务器日志. 这就是因为在返回数据的时候,序列化失败,导致WCF服务自动停止了. 为什么会序列化失败 为了方便说明,我们先

WCF初探-27:WCF中的实例化

理解WCF中的实例化机制 “实例化”是指对用户定义的服务对象以及与其相关的 InstanceContext 对象的生存期的控制.也就是说我们的客户端程序在调用服务端方法时,需要实例化一个服务端代理类对象,实例化就是对这个对象的生命周期的管理(比如:代理服务对象的创建,对象调用服务端方法后需要对其进行的回收处理). 实例化行为(使用 System.ServiceModel.ServiceBehaviorAttribute.InstanceContextMode 属性进行设置)控制如何创建 Inst

wcf中的使用全双工通信(转)

wcf中的使用全双工通信 wcf中的契约通信默认是请求恢复的方式,当客户端发出请求后,一直到服务端回复时,才可以继续执行下面的代码. 除了使用请求应答方式的通信外,还可以使用全双工.下面给出例子: 1.添加一个wcf类库 2.在服务契约添加如下一个片段 [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples", SessionMode = SessionMode.Required,         Call

WCF初探-26:WCF中的会话

理解WCF中的会话机制 在WCF应用程序中,会话将一组消息相互关联,从而形成对话.会话”是在两个终结点之间发送的所有消息的一种相互关系.当某个服务协定指定它需要会话时,该协定会指定所有调用(即,支持调用的基础消息交换)必须是同一对话的一部分.如果某个协定指定它允许使用会话但不要求使用会话,则客户端可以进行连接,并选择建立会话或不建立会话.如果会话结束,然后在同一个通道上发送消息,将会引发异常. WCF中的会话机制通过设置服务协定(ServiceContract)上的SessionMode的枚举值

WCF初探-22:WCF中使用Message类(上)

前言 从我们学习WCF以来,就一直强调WCF是基于消息的通信机制.但是由于WCF给我们做了高级封装,以至于我们在使用WCF的时候很少了解到消息的内部机制.由于WCF的架构的可扩展性,针对一些特殊情况,WCF为我们提供了Message类来深度定制消息结构,以便我们拓展WCF的通信机制. 在之前的文章中,我们针对一些常用的WCF传递数据的方式进行了说明,比如数据协定和消息协定等.他们传递的数据最终都会转化为消息的实例.具体参照:        WCF初探-16:WCF数据协定之基础知识       

WCF初探-25:WCF中使用XmlSerializer类

前言 在上一篇WCF序列化和反序列化中,文章介绍了WCF序列化和反序列化的机制,虽然WCF针对序列化提供了默认的DataContractSerializer序列化引擎,但是WCF还支持其他的序列化引擎,那就是XmlSerializer序列化引擎.本文将详细介绍XmlSerializer类在WCF中具体的使用方式. XmlSerializer类概述 XmlSerializer 类不是 WCF 的专用类.ASP.NET Web 服务同样使用该类作为序列化引擎. XmlSerializer 类支持的类

SSL/TLS原理详解与WCF中的WS-Security

SSL/TLS作为一种互联网安全加密技术 1. SSL/TLS概览 1.1 整体结构 SSL是一个介于HTTP协议与TCP之间的一个可选层,其位置大致如下: SSL:(Secure Socket Layer,安全套接字层),为Netscape所研发,用以保障在Internet上数据传输之安全,利用数据加密(Encryption)技术,可确保数据在网络上之传输过程中不会被截取.当前版本为3.0.它已被广泛地用于Web浏览器与服务器之间的身份认证和加密数据传输.SSL协议位于TCP/IP协议与各种应

4 WCF中的RPC和OneWay

1 创建两个控制台项目 WcfService和WcfClient 在wcfService项目中新建一个wcf服务的文件项(HomeService)会自动附带生成一个IHomeService.cs的文件 using System.ServiceModel; namespace WcfService { // 注意: 使用"重构"菜单上的"重命名"命令,可以同时更改代码和配置文件中的接口名"IHomeService". [ServiceContrac