上传下载大点的数据文件,WCF用默认配置不能正常的序列化和反序列化

本文主要是介绍上传下载大点的数据文件,WCF用默认配置不能正常的序列化和反序列化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天遇到两个问题,一个主要问题,一个次要问题。

 

主要问题:上传下载大点的数据文件,WCF用默认配置不能正常的序列化和反序列化。

运行WCF,上传13K的XML数据出错。错误如下:

格式化程序尝试对消息反序列化时引发异常,对操作"SetFigureData"的请求消息正文进行反序列化时出现错误。读取XML数据时,超出最大字符串内容长度配额(8192)。通过更改在创建XML读取器时所使用的XmlDictionaryReaderQuotas对象的MaxStringContentLenght属性,可增加此配额。第156行,位置为48。

 

解决办法,有位园友写到了,可以参考如下:

http://www.cnblogs.com/upzone/archive/2009/01/20/1378655.html

大致思路:上传不行,就看服务器端的App.config;下载不行,就看客户端的App.config。我没从这出发,我在做上传的时候,老拘泥于客户端的App.config文件,其实早配对了,还是报错,出错原因是在服务器端的App.config中,没配置,就是用缺省的设置了。当然,网上还有个人,说去改machine.config文件,更是小题大作,把问题想远了。我们都知道machine.config是根,不应该随便动的,应该专事专办。

我再补充下,WCF生成的文件App.config文件,是不包含bindings节点的。(就为这个,浪费我40分钟时间,我把下面两部分没当成在一个文件里,但是切记它们实际是在一个文件里。)

<bindings>
  <wsHttpBinding>
    <binding name="NewBinding2" maxReceivedMessageSize="67108864">
      <readerQuotas maxStringContentLength="67108864"/>
      <security mode="None" />
    </binding>
  </wsHttpBinding>
</bindings>

<service behaviorConfiguration="DomainWS.DomainServiceV2Behavior"
      name="DomainWS.DomainServiceV2">
  <endpoint address="" binding="wsHttpBinding" bindingConfiguration="NewBinding2" contract="DomainWS.IDomainV2">
    <identity>
      <dns value="localhost" />
    </identity>
  </endpoint>
  <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>

 

次要问题:

在解决上述问题的时候,引入的另一个问题,尝试按MSDN博客上一个人的方法,修改客户端的App.config,结果客户端的Binding方式变了,从wsHttpBinding改为basicHttpBinding,却忘了改服务器的Binding方式,还是用的wsHttpBinding。当然对不上号了,一运行如下错误出现:

服务 http: 不支持内容类型 text/xml; charset=utf-8。客户端和服务绑定可能不匹配。

 

按关键字一搜,就找到类似问题了。不过那个楼主在看到真正的答案的时候,好像也没意识到。哎,可惜了。

 

 总结来说,分析问题的能力很重要,老外管它叫“Trouble Shooting Ability”。

 

相关文章:http://www.cnblogs.com/mingzhe/archive/2009/07/07/1518468.html

这篇关于上传下载大点的数据文件,WCF用默认配置不能正常的序列化和反序列化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/291363

相关文章

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

配置springboot项目动静分离打包分离lib方式

《配置springboot项目动静分离打包分离lib方式》本文介绍了如何将SpringBoot工程中的静态资源和配置文件分离出来,以减少jar包大小,方便修改配置文件,通过在jar包同级目录创建co... 目录前言1、分离配置文件原理2、pom文件配置3、使用package命令打包4、总结前言默认情况下,

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

windos server2022里的DFS配置的实现

《windosserver2022里的DFS配置的实现》DFS是WindowsServer操作系统提供的一种功能,用于在多台服务器上集中管理共享文件夹和文件的分布式存储解决方案,本文就来介绍一下wi... 目录什么是DFS?优势:应用场景:DFS配置步骤什么是DFS?DFS指的是分布式文件系统(Distr

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨