0

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

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

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

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

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

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

  1. 如果我必须重新实现会话状态 - 有人可以给我简要概述如何实现会话状态(SQL 服务器模式),以便它适用于多个实例 - 比如用于唯一键的内容(如何设置和获取会话变量基于此键用于多个实例)以及如何配置数据库中的表等。

注意:当前会话状态是“InProc”模式,我可以说因为它没有在任何地方设置,所以我认为这是默认设置。会话变量在当前实现中非常标准。

这是我开始的一个新项目——这是我的第一个任务——但是代码真的很乱——它没有模块化甚至基本的 3 层实现。该代码非常难以管理且难以调试。

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

4

1 回答 1

0

所有需要的都在Session-State Modes中给出。

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

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

于 2013-11-05T18:50:32.003 回答