我正在ASP.NET /ASP.NET上观看学习视频。在本教程中,他们将构建一个测验引擎。有一次,讲述者解释说,我们将使用Session对象来维护每页之间的状态(每页包含一个问题和四个答案)。他说,“由于这是一个低流量的网站”,可以使用Session,但他没有时间实现更复杂的方法。
我只是想知道他在暗示什么替代方法?为什么session对于一个高流量的网站来说是一个糟糕的选择?
发布于 2009-04-20 09:47:00
将数据存储在数据库中,或者存储在cookie或其他不会直接占用web服务器内存的方法中。
除了负载之外,会话还会引发使用服务器场的能力问题,因为您需要在整个服务器场中同步会话,或者使会话变得粘滞,这可能会影响可伸缩性。
发布于 2009-04-27 16:10:34
对于替代方案,您可以阅读文章Nine Options for Managing Persistent User State in Your ASP.NET Application。
在文章中,作者解释了每种方法的优缺点。
从摘要中:
ASP.NET提供了许多不同的方法来在用户请求之间持久化数据。您可以使用Application对象、cookies、隐藏字段、Session或Cache对象以及许多其他方法。决定何时使用其中的每一个有时可能很困难。本文将介绍上述技术,并提供有关何时使用它们的一些指南。虽然这些技术中的许多都存在于传统的ASP中,但随着.NET框架的引入,何时使用它们的最佳实践已经发生了变化。若要将数据持久化到ASP.NET中,您必须调整以前学到的有关在ASP.
中处理状态的知识
发布于 2009-04-20 09:51:58
会话数据存储在服务器的RAM中,如果你有一个高流量的站点,很快就会变满,而你最不想要的就是将数据交换到磁盘上。
正如gaijin42所说,cookies或DB是替代方案。
https://stackoverflow.com/questions/769338
复制相似问题