2
我写了我自己的PageStatePersister
类基于SessionPageStatePersister
它写最近10 Viewstate
s会话到共享磁盘。我认为这会比在会话中保留Viewstate
更好,因为所有的Web服务器都可以访问它,它们不必处理过期并使用更少的内存。查看状态在平面文件vs查看状态在SQLserver
当用户关闭浏览器时,它会通知服务器,服务器会删除那些在两个小时内未被访问的文件。到目前为止这么好,但我想知道是否将Viewstate
存储在SQL服务器数据库中会更快更高效。
- 每个
ViewState
文件平均为30k。 - 目前它只是读取隐藏字段以获取Viewstate键并直接访问文件并反序列化。无需分类或搜索。
- 每小时将有大约2000个并发用户并保存最近的20个Viewstate会话将每小时大约20k个临时视图文件。
- 它必须定期遍历文件并删除最旧的文件。
因此,这是在这种情况下,更好的:一个平面文件系统或数据库?
您提到“我认为这样会比保持会话中的视图状态更好,因为所有的Web服务器都可以访问它”。视图状态是什么意思保存在会话中?这是你明确想要的吗?要将视图状态数据存储在服务器中而不是客户端的浏览器上? – 2009-10-11 05:53:08
yep viewstate应该在服务器上。 – Tuviah 2009-10-11 14:56:23