ASP.net中的隐藏字段长度是否有任何限制

时间:2013-03-26 15:44:08

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

我遇到了一个奇怪的错误(不是很奇怪,我想这是因为我可能不知道的一些最大长度限制)。我正在开发一个自定义服务器控件,它为员工呈现自定义搜索服务。成功搜索员工后,我从json中的WCF服务获取整个对象(List),将字符串保存在隐藏字段中,并回发后面的代码以获取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条记录。但是,错误仍在继续。这告诉我对表单的最大大小有某种限制。我可以获得任何解决此问题的方法,或者我是否必须将ID发送到后面的代码并从服务中获取对象?实际上,服务URL应该是动态的,主机应用程序将提供它,所以我试图不在C#级别引入任何服务绑定(你知道了,我猜)。

2 个答案:

答案 0 :(得分:4)

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

<httpRuntime maxRequestLength="x">

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

答案 1 :(得分:1)

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

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