首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ViewState、Session和StateServer

ViewState、Session和StateServer
EN

Stack Overflow用户
提问于 2012-04-13 00:49:16
回答 2查看 1K关注 0票数 1

我有一个复杂的,非常复杂的ASP.NET WebForm,它有一个大的ViewState。目前,为了降低对浏览器的影响(通过缩小__VIEWSTATE隐藏输入字段),我使用PageAdapterSessionPageStatePersisterViewState存储在Session中。

但是,我希望将会话模式从InProc更改为StateServer,这样既可以降低内存使用率,又可以避免站点重启和应用程序池回收问题。我是否需要将ViewState从会话中拉回?或者它可以保持原样?

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

注意:我目前使用的是.NET 2.0 (集成),但我对更新它持开放态度。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-13 01:03:54

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

票数 0
EN

Stack Overflow用户

发布于 2012-04-13 01:30:18

在走那条路之前,我还会考虑一些其他的选择。

我要考虑的第一件事是ViewState压缩,它可以将ViewState的大小减少多达60%。Telerik提供了一个很好的压缩模块,你可以找到here

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

代码语言:javascript
复制
<pages maxPageStateFieldLength="100"></pages>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10128079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档