在ASP.NET MVC3中使用无会话控制器有什么好处?

Feb*_*J S 5 asp.net-mvc controls session-less asp.net-mvc-3

任何人都可以给我一个详细的答案吗?

在ASP.NET MVC中使用无会话控制器有什么好处?

Dar*_*rov 12

一句话:可扩展性.如果您根本不使用会话,则意味着您的应用程序是无状态的,这很棒.在Web场方案中,您只需抛出另一台服务器,即可开始处理新站点的负载.您还可以使用进程外会话(如SQLServer或StateServer),并且会话将在服务器场的所有节点之间共享,但此状态服务器将成为整个站点的明智的单点故障.

酒店还设有会议另一个问题:因为如果有同一个会话的两个平行的请求会话不是线程安全的(认为AJAX调用),其写入会议这两个请求将简单地排队,依次执行控制器动作.


Jam*_*ter 12

如果您有无会话控制器,那么您将能够同时处理来自同一浏览器实例的请求.否则,ASP.NET将在收到请求时对这些请求进行排队,以便为它们提供对ASP.NET Session对象的顺序访问,以避免死锁问题或其他竞争条件.

实际上,您可以向"Session-ful"控制器发出1个请求,并同时向"无会话"控制器发出多个请求.这个模式对我实现一个长期运行的过程(通过'Session-ful'AsyncController实现)非常有用,从客户端到'无会话'控制器的AJAX调用,它为用户提供了关于多远的更新服务器的长时间运行过程.