没有会话状态的ASP.NET应用程序?

Her*_*man 5 asp.net asp.net-mvc session-state

我刚刚看完了Stefan Schackow的PDC 2009 会议,他提到他很惊讶人们仍然在ASP.NET中使用Session State.会话状态甚至在ASP.NET MVC 内部使用.

使用遗留应用程序,其中所有内容都被放入"进程中"会话(甚至数据表!),我已经看到了第一手会话滥用.

有没有办法构建没有会话状态的ASP.NET应用程序?您将如何存储典型电子商务工作流程的每个步骤的信息?

Tre*_*ent 5

您可以使用以下选项:cookie、数据库、查询字符串、页面变量和服务器缓存来尝试处理 Web 的无状态性质。每个都有自己的权衡,但实际上,我目前使用存储在数据库中的会话。这对于服务器场来说可以很好地扩展,有助于保持较小的页面大小,并且易于实现。


3Da*_*ave 4

我已经很多年没有使用会话了。如果您需要跟踪用户在页面之间的进度(例如,通过购物车结账流程),请将您需要的任何状态信息存储在数据库中,并使用 cookie 将其与用户关联起来。

值得注意的是,.NET 支持不同的“会话”机制,其中一种机制将信息存储在数据库中(我认为这是首选)而不是进程内。