zoukankan      html  css  js  c++  java
  • 20080403 Microsoft.Web.Preview 中 Maximum length exceeded 问题的解决

    最近在项目里使用了 Microsoft.Web.Preview.dll 中的客户端脚本技术,具体来说是 DataTableConverter,一个服务端DataTable到客户端 DataTable 的序列化传递技术。测试版上没有任何问题,正式版上就出现了 PageMethods 调用页面静态方法失败的问题。调试跟入,发现逻辑层的方法是正常返回 DataTable 的。但一转到页面层,就直接跳入onGetFailed里了。

    源代码之前无秘密,从页面静态方法返回到页面脚本执行之间又发生了什么呢?我们从源代码无从知晓。这种不能通过 trace 源代码得到错误根源的状况让人恼火。

    静心分析,PageMethods直接调用页面静态方法的方式其实是 ASP.NET AJAX 框架为我们在页面生成了相应的 Web Service 调用代码。而测试版和正式版的差别在什么地方呢?

    是数据库!而检查数据库,发现数据是一致的。唯一的差别在于正式版上数据比测试版上多。而在编写 onGetFailed 的脚本方法里没有将 Exception 信息显示出来给用户。打开Exception,发现Message是Maximum length exceeded。马上明白了,是 Web Service 传递的数据量超过了默认设置。

    寻找这个选项,在Web.Config里,<jsonSerialization>标签里加上maxJsonLength="10240000"属性。刷新页面,一切正常了。最终为:

    <webServices>
      <jsonSerialization maxJsonLength="10240000">
        <converters>
          <add name="DataSetConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataSetConverter, Microsoft.Web.Preview, Version=1.3.61025.0, Cultrue=neutral, PublicKeyToken=31bf3856ad364e35"/>
          <add name="DataRowConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataRowConverter, Microsoft.Web.Preview, Version=1.3.61025.0, Cultrue=neutral, PublicKeyToken=31bf3856ad364e35"/>
          <add name="DataTableConverter" type="Microsoft.Web.Preview.Script.Serialization.Converters.DataTableConverter, Microsoft.Web.Preview, Version=1.3.61025.0, Cultrue=neutral, PublicKeyToken=31bf3856ad364e35"/>
        </converters>
      </jsonSerialization>
    </webServices>

    另外,如果页面向服务器发送数据,则个限制在<httpRuntime />里配置,具体请查询帮助文档。

    总结,源码之前,没有秘密,当遇到编程问题无法解决时,则静心调试;当调试到没有源代码时,则静心思考根源,还是一样,有秘密,只是因为没有那部分源码。

    计算机真是头逻辑的动物。

     

  • 相关阅读:
    oracle的安装与plsql的环境配置
    Working with MSDTC
    soapui-java.lang.Exception Failed to load url
    Oracle 一个owner访问另一个owner的table,不加owner
    Call API relation to TLS 1.2
    Call API HTTP header Authorization: Basic
    VS2008 .csproj cannot be opened.The project type is not supported by this installat
    The changes couldn't be completed.Please reboot your computer and try again.
    Create DB Table View Procedure
    DB Change
  • 原文地址:https://www.cnblogs.com/likun/p/1136699.html
Copyright © 2011-2022 走看看