Poprawka: "długość ciągu przekracza wartość ustawioną dla właściwości maxJsonLength" komunikat o błędzie podczas uzyskiwania dostępu formularza sieci web programu ASP.NET 3.5


Objawy


Rozważ następujący scenariusz:

  • Masz aplikacji sieci web ASP.NET, która używa programu Microsoft.NET Framework 3.5.
  • Aplikacja ma stronę, która korzysta z formantu UpdatePanel .
  • Dostęp do formularza sieci web ASP.NET i UpdatePanel kontroli próbuje księgowanie danych wstecznych, który jest więcej niż 2,5 megabajtów (MB).
W tym scenariuszu formularza sieci web programu ASP.NET nie jest wyświetlany poprawnie. Ponadto wyświetlany jest komunikat o błędzie w przeglądarce sieci web, podobny do następującego:
Błąd: Sys.WebForms.PageRequestManagerServerErrorException: błąd podczas serializacji lub deserializacji za pomocą JSON JavaScriptSerializer. Długość ciągu przekracza wartość ustawić dla właściwości maxJsonLength.
Uwaga Ten problem występuje nawet, jeśli właściwość maxJsonLength jest ustawiona na dużą wartość w pliku Web.config.

Przyczyna


Ten problem występuje z powodu ograniczeń projektu w pliku System.web.extensions.dll. W szczególności Konstruktor JavaScriptSerializer ustawia twardy limit do maksymalnej wartości dla właściwości maxJsonLength . Czasami wartość maksymalna nie jest wystarczająco duży. Powoduje to, że problemy opisane w sekcji "Symptomy".

Rozwiązanie


Informacje o poprawce

Obsługiwana poprawka jest obecnie udostępniana przez firmę Microsoft. Jednak jest ona przeznaczona do usunięcia tylko problemu opisanego w tym artykule. Zastosuj ją tylko w systemach, w których występuje ten problem.

Aby rozwiązać ten problem, skontaktuj się z biurem obsługi klienta Microsoft w celu uzyskania poprawki. Aby uzyskać pełną listę numerów telefonów pomocy technicznej firmy Microsoft oraz informacje o pomocy technicznej odwiedź następującą witrynę firmy Microsoft w sieci Web:Uwaga W wyjątkowych przypadkach opłaty za połączenie z pomocą techniczną mogą zostać anulowane, jeśli specjalista firmy Microsoft zdecyduje że określona aktualizacja, może rozwiązać Twój problem. Koszty obsługi zwykłych zastosuje się do dodatkowych pytań i problemów, których nie można rozwiązać przy użyciu określonej aktualizacji.

Wymagania wstępne

Aby zastosować tę poprawkę, musi mieć.NET Framework 3.5 z dodatkiem SP1 zainstalowane na komputerze, na którym jest uruchomiony jeden z następujących systemów operacyjnych:
  • Windows XP
  • System Windows Server 2003
  • Windows Vista
  • Windows Server 2008

Wymagania dotyczące ponownego uruchomienia

Należy ponownie uruchomić komputer po zastosowaniu tej poprawki, jeśli dowolne pliki podlegające usterce są używane podczas instalowania tej poprawki. Aby uniknąć ponownego uruchamiania komputera, zamknij wszystkie witryny sieci Web ASP.NET, przed zainstalowaniem tej poprawki.

Informacje dotyczące zastępowania poprawek


Ta poprawka nie zastępuje żadnych innych poprawek.

Informacje o plikach

Wersja anglojęzyczna tej poprawki ma atrybuty plików (lub nowsze) wymienione w poniższej tabeli. Daty i godziny odpowiadające tym plikom zostały podane w formacie uniwersalnego czasu koordynowanego (UTC, Coordinated Universal Time). Po wyświetleniu informacji o pliku są konwertowane na czas lokalny. Aby zobaczyć różnicę między czasem UTC i czasem lokalnym, należy użyć z karty Strefa czasowa w aplecie Data i godzina w Panelu sterowania.
Wszystkie obsługiwane wersje programu.NET Framework 3.5 x86
Nazwa plikuWersja plikuRozmiar plikuDataGodzinaPlatforma
System.web.extensions.dll3.5.30729.45591,277,95224-cze-201008:47x86
Dla wszystkich obsługiwanych wersji x64.NET Framework 3.5
Nazwa plikuWersja plikuRozmiar plikuDataGodzinaPlatforma
System.web.extensions.dll3.5.30729.45591,277,95224-Jun-201013:25x64
Wszystkie obsługiwane wersje programu.NET Framework 3.5 komputerów z procesorami IA-64
Nazwa plikuWersja plikuRozmiar plikuDataGodzinaPlatforma
System.web.extensions.dll3.5.30729.45591,277,95224-Jun-201017:34IA-64

Instrukcje po instalacji

Po zastosowaniu tej poprawki, Dodaj następujący element do pliku Web.config, a następnie określ większe wartości maksymalnej długości skryptu.
<appSettings><add key=”aspnet:UpdatePanelMaxScriptLength” value=”
<value>” /></appSettings>

Aby obejść ten problem, należy zainstalować zestaw międzyoperacyjny w globalna pamięć podręczna zestawów polecenia Gacutil.exe.

Stan


Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.

Powiązane artykuły


Aby uzyskać więcej informacji na temat formantu UpdatePanel odwiedź następującą witrynę Microsoft Developer Network (MSDN):Aby uzyskać więcej informacji o elemencie jsonSerialization odwiedź następującą witrynę MSDN: