会话状态从单实例到多实例

时间:2013-11-05 18:39:19

标签: asp.net session

在我目前的任务中 - 我必须为会话状态管理问题实施解决方案。目前的实施如下:

  1. 有一个asp.net表单,允许您添加多个条目以形成批处理。
  2. 这些字段代表一个条目(大多数字段是自动完成的) - 一旦填满所有字段并单击“添加”按钮 - 条目就会添加到网格视图中 - 每次“添加”按钮都是单击它会导致回发,并且网格视图会重新填充显示之前的条目。
  3. 多次重复上述步骤以输入多个条目 - 所有条目都显示在网格视图中 - 然后单击“输入批处理”按钮 - 将网格视图中的所有条目作为批处理提交到数据库。 / LI>

    问题:要启用上述大部分功能,还会在整个页面和其他页面上实现会话状态(InProc)。问题是 - 用户可以打开同一个应用程序的多个实例,然后应用程序就会发疯。另一个问题是 - 有时候应用程序会启动用户,他们必须重新登录,以及当他们在批处理中执行的所有条目都从gird视图中消失时。

    我看到在网络表单上随处可见的会话。解决上述两个问题最明显的解决方案是实现会话状态(SQL Server)模式。

    但在我推进实施之前,我有几个问题,如果有人可以提供帮助:

    1我可以更改当前的实现(这样我就不必重新编写Web表单上已经使用过的会话变量 - 因为它们有两个) - 我试图将web.config更改为( sessionstate cookieless =“true” - 我希望这会将会话ID放在URL中,从而启用多个实例的会话状态) - 但是这样做之后 - 大多数字段的自动完成功能都不起作用,所以我已将配置更改为允许基于cookie。那么有没有办法改变当前的会话实现,使其适用于多个应用程序实例。

    1. 如果我必须重新实现会话状态 - 有人可以简要概述一下如何实现会话状态(SQL服务器模式)以便它可以在多个实例中工作 - 比如用于唯一键的内容(如何设置)并为多个实例获取基于此键的会话变量)以及如何在数据库等中配置表。
    2. 注意:当前的会话状态是'InProc'模式,我可以说因为它没有在任何地方设置,所以我认为这是默认的。会话变量在当前实现中非常标准。

      这是我已经开始的一个新项目 - 这是我的第一个任务 - 但是代码真的搞砸了 - 它没有模块化甚至是基本的3层实现。代码非常难以管理,难以调试。

      非常感谢任何帮助和建议。谢谢你们。

1 个答案:

答案 0 :(得分:0)

所需要的只是Session-State Modes

用于存储/检索会话状态的代码不会更改。

状态服务器模式是不可能的吗?

相关问题