ASP.NET中有哪些不同类型的会话

时间:2013-07-05 09:13:48

标签: asp.net session

在这里,我想了解ASP.NET中不同类型的会话,而不是会话状态。那是接受采访时提出的问题。

5 个答案:

答案 0 :(得分:5)

会话状态模式有5种类型:

InProc模式:,它将会话状态存储在Web服务器的内存中。这是默认值。

StateServer模式:,它将会话状态存储在一个名为ASP.NET状态服务的单独进程中。这可确保在重新启动Web应用程序时保留会话状态,并使会话状态可用于Web场中的多个Web服务器。

SQLServer 模式将会话状态存储在SQL Server数据库中。这可确保在重新启动Web应用程序时保留会话状态,并使会话状态可用于Web场中的多个Web服务器。

自定义模式,可让您指定自定义存储空间提供程序。

关闭模式:会禁用会话状态。

检查细节。 https://msdn.microsoft.com/en-us/library/ms178586.aspx

答案 1 :(得分:4)

典型会话基于cookie。服务器为您提供一个,您可以在每次请求时将其发送到服务器。但是,Asp.net也允许您使用不同类型的会话 - 无cookie会话。然后会话ID被存储"在URL地址中。如果使用不当,这种技术非常危险。

答案 2 :(得分:3)

肯定需要OP的更多澄清。我觉得这些术语是可以互换使用的。

本质上,网络是无状态的。为了克服这个问题,ASP.Net提供了几个状态管理选项,比如viewstate,controlstate等.Assion State是这些选项之一。

ASP.NET 会话状态支持会话变量的多个存储选项。每个选项都标识为会话状态模式类型。有四种模式类型或仅模式。进程内模式,状态服务器模式,SQL Server模式,自定义模式和关闭模式。这些是模式。进程内模式将内存用作会话存储。状态服务器模式使用状态服务器作为会话存储。等等。此外,当通过web.config指定模式时,还需要一些其他参数,如connectionstring,timeout等。其中一个参数是“cookieless”,默认值为“AutoDetect”。如果指定为“true”,它将在ID中嵌入ID。 (正如@naivists所解释的那样)。无Cookie选项可用于任何模式。

这就是ASP.Net Session的全部内容。我觉得在状态,模式,模式类型,存储等方面存在一些混淆,可以互换使用。除此之外,不应该有其他单独的东西作为“会话类型”。

答案 3 :(得分:2)

会话有三种,它们列出如下

  1. 制程中。

  2. Outprocess。

  3. Sql server session。

  4. 存储它们的地方。

    1. inproc - 默认存储在web.config中。

    2. outproc - 存储在服务器端。

    3. Sql server - 存储在数据库中。

    4. 您可以在asp.net中使用以下类型的会话管理,您可以在web.config文件中定义

      会话模式=“inproc”...表示会话将存储在应用程序中的Web服务器上 session mode =“outproc”....表示会话将存储在应用程序外部的服务器上 session mode =“stateserver”...表示会话将存储在数据库的临时内存中 session mode =“sqlserver”...表示会话将永久存储在数据库中。

答案 4 :(得分:0)

asp.net中有三种类型的会话。

  • inprocess session
  • out流程会议
  • SQl-server session