实现简单 会话状态功能易于使用,为 ASP 开发人员所熟悉,并且与其他 .NET Framework 类一致。
会话特定的事件 会话管理事件可以由应用程序引发和使用。
数据持久性 放置于会话状态变量中的数据可以经受得住 Internet 信息服务 (IIS) 重新启动和辅助进程重新启动,而不丢失会话数据,这是因为这些数据存储在另一个进程空间中。此外,会话状态数据可跨多进程保持(例如在 Web 场或 Web 园中)。
平台可伸缩性 会话状态可在多计算机和多进程配置中使用,因而优化了可伸缩性方案。
无需 Cookie 支持 尽管会话状态最常见的用途是与 Cookie 一起向 Web 应用程序提供用户标识功能,但会话状态可用于不支持 HTTP Cookie 的浏览器。但是,使用无 Cookie 的会话状态需要将会话标识符放置在查询字符串中(同样会遇到本主题在查询字符串一节中陈述的安全问题)。有关使用无 Cookie 会话状态的更多信息,请参见配置 ASP.NET 应用程序。
可扩展性 您可通过编写自己的会话状态提供程序自定义和扩展会话状态。然后可以通过多种数据存储机制(例如数据库、XML 文件甚至 Web 服务)将会话状态数据以自定义数据格式存储。有关更多信息,请参见实现会话状态存储提供程序。
使用会话状态的缺点为:
性能注意事项 会话状态变量在被移除或替换前保留在内存中,因而可能降低服务器性能。如果会话状态变量包含诸如大型数据集之类的信息块,则可能会因服务器负荷的增加影响 Web 服务器的性能。