2010-04-06 10 views
8

yılında maxPageStateFieldLength için optimum bir değer ne neyi azaltmak amacıyla10-15KB yayılan bir görünüm durumu var sayfalarda ASP.NET

web.config'de <pages maxPageStateFieldLength="">

için optimum bir değer olacaktır görüntüleme doğrulaması hatalarına yol açan potansiyel kesme riski var mı?

+0

ViewState kullanımını optimize ettiniz mi? Belki de gerekli olmadığı yerde boyutu devre dışı bırakabilir ve maxPageStateFieldLength –

+0

kullanmanız gerekmeyecektir. Görüntüleme işlemini tamamıyla sıkıştırma içerecek şekilde yeniden yazmanız yeterlidir, evet. –

cevap

1

maxPageStateFieldLength görünüm durumu boyutunu sınırlamak değildir, bu yüzden yuvarlatılır edilmez. Ne yapar

basitçe bir gizli alan yer alacak nasıl görünüm devletin denetleyebilmek olduğunu. Görünüm durumu maxPageStateFieldLength değerinden daha büyükse, görünüm durumu basitçe birkaç gizli alana bölünür.

varsayılan değer görünüm durumu normal olarak en uygun olan tek bir gizli alan, konur, yani -1 olup.

+2

Evet, bu yüzden en uygun değeri istedim, ne yaptığını anlıyorum. Sayıları 40, 100 diğer 100 örneğe benzedim, herhangi bir sayı için herhangi bir gerekçe göremedim, çünkü sadece 2'nin güçleri olmayan keyfi seçimler gibi görünüyor. –

+0

@ Chris: Tek neden Varsayılan değerden başka bir değer kullanmak için gördüğüm, herhangi bir nedenle alan değerlerinin boyutunu sınırlamak gerekirse. Böyle bir şeye ihtiyacınız varsa, en uygun değer, kullanabileceğiniz en yüksek değer olacaktır. – Guffa

+4

Bu sayının ne olduğunu bilseydim, bu soruyu yayınlayamazdım. Bu özelliğin ASP.NET'e 2.0'da eklenmesinin sebebi, antivirüslerin/yönlendiricilerin/proxy'lerin/etc'nin potansiyel olarak, büyük olasılıkla sayfaların geçersiz olmasına neden olan tek bir büyük gizli alanı kesebileceğidir. Bu, özellikle yeniden üretilemeyen bir istemci sorunu olduğundan, bunun için varsayılan değer olan -1 değerinin tam olarak ne olduğu konusunda bir fikir birliği arıyorum. –

0

Şu anda biz sadece Firefox kullanıcıları için hatalar "nedeniyle geçersiz Viewstate için HttpException" alıyorsanız bir sorun haline çalıştırıyorum. Ayrıca "System.Web.HttpException: Uzak ana bilgisayar ile iletişim kurulurken bir hata oluştu. Hata kodu 0x80070001" özel durumları, ben görünümleri olanlarla eşleştirildi.

ben firefox muhtemelen (muhtemelen) gizli form alanları üzerinde maksimum boyutu var olduğuna inanıyoruz - ben bu doğrulamak gerekir. Şimdi (kısa vadede) umarım çözmek için maxPageStateFieldLength kullanarak viewtate yığın up bakmak için arıyorum. Uzun vadeli çözüm, aspx sayfasını ızgara için bir çağrı sorgusu yapmak için yeniden düzenlemektir (bir satırda tüm satırları aşağı çekmek yerine - bu iyi bir şey değildir).

IMHO, oldukça büyük ama sınırsız değil maksimum koymak gerekir. 1MB'nin bir başlangıç ​​olduğunu söyleyebilirim.

+0

Sadece 10-15KB aralığındaki görünüm durumuyla ilgili davranışı gördüm, bu nedenle bir yığın değerinin muhtemelen 512bayt veya küçük olması gerektiğini varsayıyordum, ancak bu denemeyi denemedim. hatalar gider. Sadece web formlarından vazgeçmemi ve tüm yeni gelişmeleri MVC'ye taşımamı sağladı. –

+0

Chris için teşekkürler. Ve bunu düzeltmek sorunu çözmedi. Büyük gizli alanları kesen proxy sunucuları ile ilgili yayınlar gördüm. Ben de viewtate'ın ortadan kaldırılmasına doğru ilerliyorum. Bu popoda bir acıdır. Ne yazık ki, çok sayıda eski kod ve MVC'ye geçmek yokuş yukarı savaştır. Ah, bir hayal kurabilir. –

+0

Görüntülemeyi bertaraf etme konusunda iyi şanslar Neredeyse her tür kontrol kullanmanızın mümkün olduğunu düşünmüyorum, bu yolun .NET4 sürümü ile mümkün olduğu kadar denediğini ve hiçbir zaman bulamayacağımı düşündüm. MVC'ye geçmek için, mevcut herhangi bir özelliği elden geçirdiğimiz için eski projelerin dışına çekilip taşındıkça kademeli bir geçişi takip ettik. –

İlgili konular