1
7
会话没有任何问题-您只需要注意它的局限性。说“只需关闭会话”就是把孩子和洗澡水一起扔出去。 |
2
2
在会话中存储大对象和小对象有很大的区别 会话将在服务器上保持活动状态,直到它导出为止,这意味着这些大对象会污染您的可用内存。如果在负载下的服务器或运行许多应用程序池的服务器上执行此操作,那么这可能会导致问题。 您不需要cookies来进行会话,因为asp-cal也将这些信息编码到URL中。此外,还可以将会话存储配置为耗尽进程,甚至将信息存储在SQL Server中(减少服务器上的内存负载,并启用服务器场中的会话)。 所以基本上:物体是正常的-大的物体不是 |
3
2
这是我的看法——疗程不错,但有时使用过度。当一个Web应用程序依赖于大量的会话时,理解它的流程也会变得更加困难,因此当然,您应该小心,不要过分激动。 但是,只要需要存储临时数据以便跨多个页面访问,您就可以随时使用它们。在任何其他情况下都不应使用它们。但这种情况是专门为会议设计的。 现在,如果您担心服务器上的内存消耗,这不一定是避免会话的原因。但这更可能是避免Inproc会话提供程序的一个原因。事实上,我不喜欢Inproc会话,因为它们在应用程序中经过一定数量的重新编译后往往会过早过期。 我实际上更喜欢并且几乎总是使用SQL Server会话。他们会稍微慢一点,但好处很多。即使重新启动服务器,它们也会持续存在,这使得它们成为非常可靠的选择。当然,因为它们存储在SQL文件系统而不是内存中,所以它们不会对内存造成如此大的影响。 This article on MSDN 讨论各种会话提供程序,并解释如何配置SQL来处理会话。如果没有SQL,只需知道即使是免费的SQL Server Express 2008也可以配置为会话提供程序。 |
4
1
我原以为这很大程度上取决于你网站的流量。如果您运行类似amazon.com的程序,试图将用户的购物车存储在会话中会占用大量的IIS分配内存,从而导致Web服务器停机。对于较小的网站,会话变量可以适度使用。 |
5
1
在会话中存储大型对象是不好的,是的,但“大型”是相对的。 基本上,在会话中存储一个对象会将其保存在内存中,直到会话到期,所以如果您有一个用户数很高的站点,所有这些站点都在会话中存储巨型对象,那么您将很快杀死您的服务器。 有了这一点,我们可以提出一个论点,即如果您的内存中有5K+的对象,并且有足够的用户实际限制了一台服务器,那么您无论如何都可能负担得起更多的硬件。 还有一些主题,如服务器集群和集群中的框之间的会话完整性。有些框架处理这个问题,我不知道.NET是否处理。 |
6
1
有两件事要小心:
|
7
0
我想这些原因与在会话中存储大型对象没有任何关系,只是在使用会话中。 |
8
0
我想到了两个主要问题… 1)当您开始扩展您的网站时,跨服务器持久化会话 2)会话状态下存储UI对象的内存使用激增 更严重的问题是在会话中存储对象的倾向。当你在页面上存储一些像标签这样无害的东西时,你也会得到很多不需要的对象属性。您可能只是希望将标签的文本存储在会话中,但是随着它的出现,您会得到对页面本身的引用……突然之间,您有大量的内存用于存储页面、页面的视图状态以及服务器上内存中的许多不需要的属性。 |
9
0
你可能想退房 this question 也。 |
Garrett Rose · 会话数据如何在页面之间传递? 6 年前 |
Viktor Rudi · PHP-更改会话值以更改语言 6 年前 |
John_Cartor · PHP登录(会话问题) 6 年前 |
glembo · 基于会话令牌认证问题的Laravel 5.6购物车 6 年前 |
Rehan · 登录验证php后创建会话 6 年前 |
joko · 通过会话、两个目录使用多种语言 6 年前 |