2013-03-26 47 views
3

我遇到了一個奇怪的錯誤(不是很奇怪,我猜這是因爲我可能不知道的最大長度限制)。我正在開發自定義服務器控件,它爲員工呈現自定義搜索服務。當成功搜索員工時,我從JSON中的WCF服務中獲取他們的整個對象(List),將該字符串保留在隱藏字段中,並回傳代碼以獲取json字符串並反序列化爲對象。現在,高達2000點的對象,這是工作完美,但是當搜索條件開始高於2000取出,下面的錯誤開始存在的ASP.net隱藏字段長度是否有任何限制

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#級別引入任何服務綁定(我想你會明白)。

+0

我建議這不是最好的方法。尋找什麼東西時,你真的想顯示超過x(比如100)的人嗎?還有更多應該被分頁/輸出,因爲用戶不會滾動5000+?! – Belogix 2013-03-26 15:51:18

+0

不,不是,你沒有得到我,我的意思是有一個選擇所有員工落入搜索標準,甚至不在頁面上的選項(分頁通過向下滾動實現),在這種情況下,我必須使所有選定的員工,可在自定義控件公開的財產中使用。 – 2013-03-26 19:20:38

回答

4

ASP.NET確實有最大請求大小 - 根據documentation,默認爲4MB。如果你認爲你可能會打這個限制,您可以通過添加以下到你的web.config文件中<system.web>標籤中增加它:

<httpRuntime maxRequestLength="x"> 

其中x是在千字節爲單位所需的最大。例如,10240將是10MB。

1

當我來回傳遞大量數據進行映射時,遇到了這個問題 - 在數據太大後我就丟失了數據。我對web.config做了一些修改:

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