【问题标题】:Saving Viewstate on Server在服务器上保存视图状态
【发布时间】:2011-01-10 10:21:00
【问题描述】:

在服务器上保存视图状态的最佳方式是什么?

使用 WCF 服务将视图状态保存在服务器上是个好主意吗?

【问题讨论】:

    标签: asp.net wcf viewstate


    【解决方案1】:

    我们是在谈论 ASP.NET 视图状态吗?为什么需要 WCF 在服务器上存储视图状态? ASP.NET 提供了自己的方法来在服务器上存储视图状态:

    • 您可以覆盖Page 上的SavePageStateToPersistenceMediumLoadPageStateFromPersistenceMedium

    • 您可以覆盖PagePageStatePersister 属性(或自定义PageAdapter)。此属性默认返回HiddenFieldPageStatePersister,但您可以将其更改为SessionPageStatePersister 或实现自定义PageStatePersisterHere 您可以阅读有关 PageStatePersisters 的信息。

    【讨论】:

    • 在大多数情况下,您可能希望将视图状态存储在会话以外的其他位置,默认情况下会话会在 20 分钟的活动后超时。
    • 是的。我说的是 ASP.net 视图状态。我需要 WCF,因为我的 sql 服务器位于防火墙后面,而我的 Web 服务器位于 DMZ 中。
    • 在这种情况下,您可以使用描述的方法或自定义持久化器与您的 WCF 服务通信并将视图状态作为字节数组传递。或者您可以将视图状态存储在 Web 服务器上的会话中。
    【解决方案2】:

    您应该查看 CodeProject 上的一个名为 Efficient Server-Side View State Persistence 的项目。这符合以下标准:

    • 需要保持视图状态 在服务器上。
    • 视图状态持久化机制 需要通过特定的标识 用户会话。
    • 持久的视图状态工件 不得留下 永远。
    • 持久的视图状态应该是 能够在一个启用和禁用 逐页显示。
    • 不同的持久性机制 应该可以使用的。
    • 页面开发和结构应该 不可修改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-25
      • 1970-01-01
      • 2020-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多