我一直在试图让一个基本-64字符数组和无效字符在基地-64串旧无效长度的底部。视图状态无效长度错误
这是一个大的ViewState,因为我存储数据的很大一部分在那里,我不希望从数据库中请求每三秒钟的用户。因为它是如此之大(4兆在某些情况下),我使用gzip,和压倒一切的LoadPageStateFromPersistenceMedium()和SavePageStateToPersistenceMedium(BYVAL pageViewState作为对象),并创建自定义的视图状态。
问题是,每一个现在,然后上述错误正在发生。我试图去的这条底线,并在会议呼吁SavePageStateToPersistenceMedium时使存储初始视图状态的长度,并将其与的LoadPageStateFromPersistenceMedium新的视图状态的长度进行比较。我注意到Viewstate的长度已经被严重削减,我想知道是什么原因造成的。
出现的第二个字符串中我也注意到+字符(我正在采取各的最右边10,以查看是否最初被添加任何东西)。对于一个用户来说,这肯定会发生得比其他用户多得多,这或者表明他处理的数据或者他与系统的物理连接(速度,软件,浏览器等)的问题。
有没有人有任何想法?我们也有一些服务于用户的刀片服务器,所以我想知道它是否可以作为用户从一个服务器推向另一个服务器,但我需要检查这一点。
我也听说过,这可能是与渲染的事,但我想在视图状态加载之前渲染?
你确定这个数据你存储,必须有可在页面呈现?从你的描述中,如果你设置并从代码中获取这些数据,并且不需要渲染控件的页面布局,我想Cache也可以。 ViewState应该很小,只与页面有关。如果每个用户或缓存(如果是每个应用程序),则会将更大的一部分数据存储在Session中。 –
@DavidePiras我在想着完全一样的东西。我认为使用缓存将更快,更清洁。它有避免ViewState问题的巨大副作用。 – JefClaes
是的,但请记住,缓存在应用程序范围内,如果您存储的这些数据对于每个连接的用户都不相同,请使用Session。 –