在MVC使用Session对象,是不是真的不好?(Using Session objects in

2019-08-20 07:00发布

我建议使用一个简单的会话对象在MVC3保持像RecordIds状态的数据,而不是通过所有这将是一个麻烦的客户端页面通过他们。 看来,到目前为止,简单到只需填充会话对象一次,直到不再使用。

因此,这是可以接受的做法或作弊?

非常感谢。

Answer 1:

没有什么错误使用Session对象。 通常人们避免他们减少服务器上的负载; 但如果你小心 ,不要试图把大量的数据在那里,没有太多(太多的多少取决于你的服务器上),那么它是一个可以接受的做法。

有关使用会话的潜在缺点一些信息检查出答案来仍然正常在ASP.NET MVC中使用Session变量,或者是有一些事情是更好的选择(如车)



Answer 2:

就像开发商的生活中的一切,使用会话是一个权衡,以及恕我直言,它通常是一个糟糕的一个。

会话状态不仅会导致上趋于增长,并创建可扩展性障碍(这两个问题可能是 - 部分 - 解决了存储与状态服务器或SQL服务器会话变量)服务器负载,它有一个由设计怪癖,不是每个人都知道的:它保持在会话的读写锁。 ( http://msdn.microsoft.com/en-us/library/ms178581(v=vs.100).aspx )

这意味着,在默认情况下,没有任何两个并发请求可以由相同的用户进行。 此行为是asp.net有关(不只是asp.net MVC),然而,由于asp.net MVC真的鼓励你去倒了ajax路上,你会看到这个问题更常见)。

您可以通过巧妙地利用绕过这些问题只读会话状态或选择性禁用它 ,但是从我的经验,对于具体的操作方法创建开发成本,因为该属性只能在类范围中声明,而不是,导致你掰开逻辑单元将通常位于一起。

总之,你的荣誉,asp.net会话状态的默认行为是有问题的。 应尽可能避免使用它。



文章来源: Using Session objects in MVC, Is it really bad?