我一直在試圖讓一個基本-64字符數組和無效字符在基地-64串舊無效長度的底部。視圖狀態無效長度錯誤
這是一個大的ViewState,因爲我存儲數據的很大一部分在那裏,我不希望從數據庫中請求每三秒鐘的用戶。因爲它是如此之大(4兆在某些情況下),我使用gzip,和壓倒一切的LoadPageStateFromPersistenceMedium()和SavePageStateToPersistenceMedium(BYVAL pageViewState作爲對象),並創建自定義的視圖狀態。
問題是,每一個現在,然後上述錯誤正在發生。我試圖去的這條底線,並在會議呼籲SavePageStateToPersistenceMedium時使存儲初始視圖狀態的長度,並將其與的LoadPageStateFromPersistenceMedium新的視圖狀態的長度進行比較。我注意到Viewstate的長度已經被嚴重削減,我想知道是什麼原因造成的。
出現的第二個字符串中我也注意到+字符(我正在採取各的最右邊10,以查看是否最初被添加任何東西)。對於一個用戶來說,這肯定會發生得比其他用戶多得多,這或者表明他處理的數據或者他與系統的物理連接(速度,軟件,瀏覽器等)的問題。
有沒有人有任何想法?我們也有一些服務於用戶的刀片服務器,所以我想知道它是否可以作爲用戶從一個服務器推向另一個服務器,但我需要檢查這一點。
我也聽說過,這可能是與渲染的事,但我想在視圖狀態加載之前渲染?
你確定這個數據你存儲,必須有可在頁面呈現?從你的描述中,如果你設置並從代碼中獲取這些數據,並且不需要渲染控件的頁面佈局,我想Cache也可以。 ViewState應該很小,只與頁面有關。如果每個用戶或緩存(如果是每個應用程序),則會將更大的一部分數據存儲在Session中。 –
@DavidePiras我在想着完全一樣的東西。我認爲使用緩存將更快,更清潔。它有避免ViewState問題的巨大副作用。 – JefClaes
是的,但請記住,緩存在應用程序範圍內,如果您存儲的這些數據對於每個連接的用戶都不相同,請使用Session。 –