1

我有一个复杂的、非常复杂的ASP.NETWebForm,其中包含一个大型ViewState. 目前,为了降低对浏览器的影响(通过缩小 __VIEWSTATE 隐藏输入字段),我使用PageAdapterandSessionPageStatePersister将.ViewStateSession

但是,我想将会话模式从 更改InProcStateServer,这样既可以降低 RAM 使用率,又可以避免站点重新启动和应用程序池回收问题。我是否需要将 ViewState 从 Session 中撤出?还是可以保持原样?

将来,我也想进行负载平衡,但我听说我可以只使用“粘性会话”,所以这可能不会强迫我进入 StateServer。

注意:我目前正在使用.NET 2.0(集成),但我愿意更新它。

4

2 回答 2

2

在走这条路线之前,我还会考虑其他一些选择......

我首先要研究的是 ViewState 压缩,它可以将 ViewState 的大小减少多达 60%。Telerik 提供了一个很好的压缩模块,你可以在这里找到

其次,您可以在 ViewState 字段上设置最大长度,这将强制 ASP.NET 将 ViewState 划分为多个隐藏字段。这通常会产生更好的页面性能。您可以PageStateFieldLengthweb.config这样设置:

<pages maxPageStateFieldLength="100"></pages>
于 2012-04-12T17:30:18.353 回答
0

SessionPageStatePersister将您的 Viewstate 存储在 Session 对象中,无论您的 Session 碰巧存储在哪里。它完全不知道您的会话是 InProc、SQL 还是 StateServer,它应该继续工作而无需您做任何事情。

于 2012-04-12T17:03:53.797 回答