【问题标题】:Is there any limit to Hidden Field Length in ASP.netASP.net 中的隐藏字段长度是否有任何限制
【发布时间】:2013-03-16 11:58:14
【问题描述】:

我遇到了一个奇怪的错误(不是很奇怪,我想这是因为我可能不知道某些最大长度限制)。我正在开发自定义服务器控件,它为员工提供自定义搜索服务。成功搜索员工后,我从 WCF 服务中以 json 格式获取他们的整个对象(列表),将字符串保存在隐藏字段中,并回发后面的代码以获取 json 字符串并反序列化为对象。现在,多达 2000 个对象,它可以正常工作,但是当搜索条件开始获取 2000 以上时,开始出现以下错误

Uncaught Sys.WebForms.PageRequestManagerServerErrorException: Sys.WebForms.PageRequestManagerServerErrorException: An unknown error occurred while processing the request on the server. The status code returned from the server was: 0 

我也调试了代码,但 c# 代码甚至没有捕获任何调用。我还尝试将对象的 json 字符串保存在多个隐藏字段中,每个字段在 json 字符串中都有 1000 条记录。但是,错误仍然不断出现。这告诉我对表格的最大尺寸有某种限制。我可以为这个问题找到任何解决方案,还是我必须将 Ids 发送到后面的代码并从那里的服务中获取对象?实际上,服务 url 应该是动态的,主机应用程序会提供它,所以我尽量不在 C# 级别引入任何服务绑定(我猜你明白了)。

【问题讨论】:

  • 我认为这不是最好的方法。在搜索某些内容时,您是否真的想展示超过 x(比如 100)个人?因为用户不会滚动超过 5,000 个,所以应该再分页/分页?!
  • 不不,你没听懂,我的意思是有一个选项可以选择所有符合搜索条件的员工,甚至不在页面上(通过向下滚动实现分页),在那个情况下,我必须让所有选定的员工在自定义控件公开的公共属性中可用。

标签: c# asp.net wcf hidden-field asp.net-customcontrol


【解决方案1】:

ASP.NET 确实有一个最大请求大小——根据documentation,默认情况下它是 4MB。如果你认为你可能会达到这个限制,你可以通过在<system.web> 标签内的 web.config 文件中添加以下内容来增加它:

<httpRuntime maxRequestLength="x">

其中 x 是所需的最大值,以千字节为单位。例如,10240 就是 10MB。

【讨论】:

    【解决方案2】:

    当我来回传递大量数据以进行映射时遇到了这个问题 - 我在数据变得太大后丢失了数据。我对 web.config 做了一些更改:

     <appSettings>    
         <add key="aspnet:MaxHttpCollectionKeys" value="5000" />
         <add key="aspnet:MaxJsonDeserializerMembers" value="5000" />
    </appSettings>
    

    【讨论】:

      猜你喜欢
      • 2017-04-02
      • 2011-06-30
      • 1970-01-01
      • 1970-01-01
      • 2019-06-17
      • 2017-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多