了解会话状态模式C#

时间:2019-03-18 08:22:11

标签: c# asp.net-mvc session-state

我正在web.config中的asp.net mvc中创建一个Web应用程序,我有一个名为sessionState的部分,如下所示

<sessionState mode="InProc" timeout="25"></sessionState>

每当我将模式更改为InProc时,我都可以使用会话,但是当我将模式更改为StateServer时,我却无法使用会话,在Google上搜索后,我知道那里sessionstates

有5种类型
  

InProc

     

StateServer

     

SQLServer

     

自定义

     

关闭

我只想知道在哪种情况下可以使用上述sessionstate,

1 个答案:

答案 0 :(得分:1)

InProc-作为网站/ Web应用程序的一部分运行,始终在其中运行,但仅在同一服务器和该网站的同一实例上运行。

StateServer-需要在计算机上运行此服务(只需按开始:-)),因此会话可以连接到该计算机上的该进程,并且可以在实例和服务器之间共享。

SQLServer-与stateserver相同,但是为此使用SQL数据库。

自定义-您自己编程的任何状态服务器。

关闭-没有会话跟踪。

虽然会话可以使很多事情更易于开发,但是当您进行多服务器部署时,这将成为一个麻烦。因此,请确保限制会话的使用,如果不再可用,则始终能够检索会话数据,这样您就可以使用该会话获得最佳性能,而如果会话不再存在,则您的应用仍然可以正常工作。