UpdatePanel은 Asynpostback과 같은 거대한 데이터로 어려움을 겪고있는 것 같습니다. Jsonserializer MaxLength가 도움이되지 않습니다

StackOverflow https://stackoverflow.com/questions/280339

문제

ASP.NET 3.5 앱이 있으며 중첩 사용자 정의 컨트롤이있는 업데이트 패널을 업데이트하려고합니다. 이 사용자 정의 컨트롤에는 구성 요소 gird가 있는데,이 업데이트에서 거의 13MB의 데이터 (예, Chunck를 할 수 있습니다 ...)에 의해 채워집니다.

업데이트 패널과 그리드가 필요할 때 클라이언트 측에서 JS가 트리거하는 업데이트 패널이있는 숨겨진 버튼이 있습니다.

AsyncPostback에서 UpdatePanelxyz.update ()를 사용하여 업데이트 메소드를 호출하면 jsonserializer 가이 양의 데이터를 할 수 없다고 말하는 Asyncpostbackerror 과정에서 나중에 얻을 수 있습니다. 지정된 값을 늘려야합니다.

물론. 이해했다. 그러나 web.config 에서이 값을 변경하면 약 8MB 라운드까지만 작동하지만 더 이상 작동하지 않습니다. 이 경우 jsonserializer에 대한 제한이 있습니까? 값을 INT32의 최대 값으로 설정했는데, 이는 기본값의 1000 배이며 이미 4MB의 직렬화 된 데이터에 대해 충분합니다.

제안이 있습니까? 시리얼 라이저가 그렇게하도록 강요하는 방법이 있습니까? 다른 시리얼 라이저를 사용하는 방법이 있습니까?

건배, 스티브

도움이 되었습니까?

해결책

가장 좋은 방법은 scriptingjsonserializationsection.maxjsonlength 속성을 web.config 섹션에서 변경하는 것입니다.

JSONSERIALIZER 클래스의 2097152 자 제한과 달리 102400자가 기본값으로 표시됩니다.

보다:

Jsonserializer 클래스 MaxJsonLength 속성

그리고

Jsonserialization 구성 섹션 최대 길이 속성

위에서 언급했듯이, 구성 섹션 속성을 변경하는 것은 불행히도 유일한 방법입니다.

다른 팁

야, 1MB의 데이터가 너무 많습니다. 왜 도대체 13이 필요합니까?

나는 당신이 당신의 UI를 리팩터링해야한다고 생각합니다. 나는 당신의 네트워크가 얼마나 빨리 신경 쓰지 않습니다. 그것은 단지 미친 것입니다!

나는 절대적으로 UI와 DataAccess 계층에 리팩터가 필요하지만 단기적으로는 소프트웨어의 다음 업데이트가 나올 때까지 내 클라이언트를 도울 간단하고 빠른 솔루션을 찾고있었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top