Düzeltme: bir ASP.NET 3.5 web formuna erişim "maxJsonLength özelliği değeri dize uzunluğunu aşıyor" hata iletisi


Belirtiler


Aşağıdaki senaryoyu düşünün:

  • Microsoft .NET Framework 3.5 kullanan bir ASP.NET web uygulaması var.
  • Uygulamanızı UpdatePanel denetimi kullanan bir sayfa var.
  • ASP.NET web formu erişmek ve UpdatePanel denetim 2,5 megabayttan (MB) fazla olan verileri göndermeye çalışır.
Bu senaryoda, ASP.NET web formu düzgün görüntülenmiyor. Ayrıca, web tarayıcısında aşağıdakine benzer bir hata iletisi alırsınız:
Hata: Sys.WebForms.PageRequestManagerServerErrorException: seri hale getirme veya JSON JavaScriptSerializer kullanılarak seri kaldırma sırasında bir hata oluştu. MaxJsonLength özelliği değeri dize uzunluğunu aşıyor.
Not: MaxJsonLength özelliği Web.config dosyasında büyük bir değere ayarlarsanız, bile bu sorun oluşur.

Neden


Bu sorun System.web.extensions.dll dosyasında bir tasarım kısıtlaması nedeniyle oluşur. Özellikle, JavaScriptSerializer kurucu maxJsonLength özelliğinin en büyük değeri için kesin bir sınır ayarlar. Bazen, en büyük değer büyüklükte değil. Bu "Belirtiler" bölümünde açıklanan soruna neden olur.

Çözüm


Düzeltme bilgileri

Artık Microsoft tarafından desteklenen bir düzeltme sağlanmaktadır. Ancak, bu makalede anlatılan sorunu düzeltmesi amaçlanmıştır. Yalnızca bu özel sorunla karşılaşmış olan sistemlere uygulayın.

Bu sorunu çözmek için düzeltmeyi edinmek üzere Microsoft Müşteri Destek Hizmetleri'ne başvurun. Microsoft Müşteri Destek Hizmetleri telefon numaralarının ve destek ücretleriyle ilgili bilgi tam listesi için aşağıdaki Microsoft Web sitesini ziyaret edin:Not: Özel durumlarda, Microsoft Destek Uzmanı özel bir güncelleştirmenin sorununuzu çözeceğini belirlerse, destek aramaları için normalde uygulanan ücretler iptal edilebilir. Ek destek sorularına ve söz konusu güncelleştirme için geçerli olmayan sorunlara normal destek ücretleri uygulanır.

Önkoşullar

Bu düzeltmeyi uygulamak için .NET Framework 3.5 SP1'i aşağıdaki işletim sistemlerinden birini çalıştıran bir bilgisayarda yüklü olması gerekir:
  • Windows XP
  • Windows Server 2003
  • Windows Vista
  • Windows Server 2008

Yeniden başlatma gereksinimi

Düzeltmeyi yüklediğinizde herhangi etkilenen dosyaların kullanılıyorsa, bu düzeltmeyi uyguladıktan sonra bilgisayarı yeniden başlatmanız gerekebilir. Düzeltmeyi yüklemeden önce bilgisayarı yeniden başlatmayı önlemek için herhangi bir ASP.NET Web kapatın.

Düzeltme değiştirme bilgileri


Bu düzeltme eki, başka düzeltmelerin yerini almaz.

Dosya bilgileri

Bu düzeltmenin İngilizce sürümü, aşağıdaki tabloda listelenen dosya özniteliklerine (veya daha yeni dosya özniteliklerine) sahiptir. Bu dosyaların tarihleri ve saatleri Koordinatlı Evrensel Saat'te (UTC) listelenmiştir. Dosya bilgilerini görüntülediğinizde koordinatlı evrensel saat yerel saate dönüştürülür. UTC ve yerel saat arasındaki farkı bulmak için Denetim Masası'ndaki Tarih ve Saat öğesinde Saat Dilimi sekmesini kullanın.
Tüm .NET Framework 3.5 x86 tabanlı sürümlerinde desteklenen
Dosya adıDosya sürümüDosya boyutuTarihSaatPlatform
System.web.extensions.dll3.5.30729.45591,277,95224 Haz 201008:47x86
Tüm .NET Framework 3.5 x64 tabanlı sürümlerinde desteklenen
Dosya adıDosya sürümüDosya boyutuTarihSaatPlatform
System.web.extensions.dll3.5.30729.45591,277,95224-Jun-201013:25x64
Tüm desteklenen IA-64 tabanlı sürümleri .NET Framework 3.5 için
Dosya adıDosya sürümüDosya boyutuTarihSaatPlatform
System.web.extensions.dll3.5.30729.45591,277,95224-Jun-201017:34IA-64

Yükleme sonrası yönergeleri

Düzeltme uygulandıktan sonra Web.config dosyasına aşağıdaki öğeyi ekleyin ve sonra komut dosyasının en fazla uzunluğu için daha büyük bir değer belirtin.
<appSettings><add key=”aspnet:UpdatePanelMaxScriptLength” value=”
<value>” /></appSettings>

Bu soruna geçici bir çözüm için birlikte çalışma derlemesi genel derleme önbelleğine yüklemek için Gacutil.exe komutunu kullanın.

Durum


Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.

Başvurular


UpdatePanel denetimi hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:JsonSerialization ögesi hakkında daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin: