Oprava: "Délka řetězce přesahuje hodnotu nastavit u vlastnosti maxJsonLength" chybová zpráva při přístupu webový formulář ASP.NET 3.5


Příznaky


Jde o takovouto situaci:

  • Máte webovou aplikaci technologie ASP.NET, která používá Microsoft.NET Framework 3.5.
  • Aplikace obsahuje stránku, která používá ovládací prvek UpdatePanel .
  • Přístup webový formulář ASP.NET a ovládací prvek UpdatePanel se pokusí odeslat zpět data, která je více než 2,5 megabajtů (MB).
V tomto scénáři webový formulář ASP.NET nezobrazuje správně. Dále se zobrazí chybová zpráva v prohlížeči podobná následující:
Chyba: Sys.WebForms.PageRequestManagerServerErrorException: Chyba během serializace a deserializace pomocí JSON JavaScriptSerializer. Délka řetězce přesahuje hodnotu nastavit u vlastnosti maxJsonLength.
Poznámka: K tomuto problému dochází, i když nastavíte vlastnost maxJsonLength velké hodnoty v souboru Web.config.

Příčina


K tomuto problému dochází z důvodu omezení v souboru System.web.extensions.dll. Konkrétně JavaScriptSerializer konstruktor nastaví pevný limit maximální hodnota maxJsonLength vlastnost. V některých případech maximální hodnota není dostatečně velká. To způsobuje problém popsaný v části "Příznaky".

Řešení


Informace o opravě hotfix

Podporovaná oprava hotfix je nyní k dispozici od společnosti Microsoft. Je však určena opravit pouze problému popsaného v tomto článku. Použijte ji pouze u systémů, ve kterých dochází k tomuto konkrétnímu problému.

Chcete-li vyřešit tento problém, obraťte se na technickou podporu společnosti Microsoft získat opravu hotfix. Úplný seznam telefonních čísel služeb podpory zákazníků společnosti Microsoft a informace o cenách podpory naleznete na následujícím webu společnosti Microsoft:Poznámka: Ve zvláštních případech mohou být stornovány poplatky, které jsou třeba obvykle zaplatit za telefonní hovory, pokud pracovník služeb podpory společnosti Microsoft určí, že konkrétní aktualizace odstraní váš problém. Výdaje na technickou podporu použije dalších otázek a problémů, které nelze vyřešit konkrétní aktualizací.

Předpoklady

Chcete-li nainstalovat tuto opravu hotfix, musíte mít rozhraní.NET Framework 3.5 SP1 nainstalována v počítači, který je spuštěn některý z následujících operačních systémů:
  • Systém Windows XP
  • Windows Server 2003
  • Systém Windows Vista
  • Windows Server 2008

Požadavek na restartování

Bude pravděpodobně nutné restartovat počítač po instalaci této opravy hotfix Pokud všechny zasažené soubory jsou používány při instalaci této opravy hotfix. Chcete-li zabránit restartování počítače, před instalací opravy hotfix vypnete libovolného webu technologie ASP.NET.

Informace o nahrazení opravy hotfix


Tato oprava hotfix nenahrazuje žádné další opravy hotfix.

Informace o souborech

Anglická verze této opravy hotfix má atributy (nebo pozdější atributy souborů) uvedené v následující tabulce. Kalendářní data a časy jednotlivých souborů jsou uvedeny v koordinovaném světovém čase (UTC). Při zobrazení informací o souboru je převeden na místní čas. Rozdíl mezi místním časem a časem UTC naleznete na kartě Časové pásmo v položce Datum a čas v okně Ovládací panely.
Pro všechny podporované verze x86 na rozhraní.NET Framework 3.5
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
System.web.extensions.dll3.5.30729.45591,277,95224. června 201008:47x86
Pro všechny podporované verze x64 na rozhraní.NET Framework 3.5
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
System.web.extensions.dll3.5.30729.45591,277,95224-Jun-201013:25x64
Pro všechny podporované verze IA-64 – založené rozhraní.NET Framework 3.5
Název souboruVerze souboruVelikost souboruDatumČasPlatforma
System.web.extensions.dll3.5.30729.45591,277,95224-Jun-201017:34IA-64

Poinstalační pokyny

Po instalaci opravy hotfix, přidejte do souboru Web.config následující prvek a potom zadejte větší hodnotu pro maximální délku skriptu.
<appSettings><add key=”aspnet:UpdatePanelMaxScriptLength” value=”
<value>” /></appSettings>

Chcete-li tento problém vyřešit, použijte příkaz Gacutil.exe nainstalovat definiční sestavení v globální mezipaměť sestavení (GAC).

Stav


Společnost Microsoft potvrdila, že se jedná o problém v produktech společnosti Microsoft, které jsou uvedeny v části "Platí pro".

Odkazy


Další informace o ovládacím prvku UpdatePanel naleznete na následujícím webu Microsoft Developer Network (MSDN):Další informace o prvku jsonSerialization naleznete na následujícím webu MSDN: