7

在这里,我想知道 ASP.NET 中不同类型的 Session 而不是 Session 状态。这是采访中被问到的问题。

4

5 回答 5

18

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

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

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

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

自定义模式:允许您指定自定义存储提供程序。

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

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

于 2016-06-07T19:39:16.233 回答
6

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

于 2013-07-05T09:25:02.037 回答
3

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

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

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

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

于 2013-07-05T10:35:25.100 回答
2

会话有3种,列举如下

  1. 进程中。

  2. 外包。

  3. Sql 服务器会话。

它们存储在哪里。

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

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

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

您在 asp.net 中有以下类型的会话管理,您可以在 web.config 文件中定义它们

会话模式=“inproc”...表示会话将存储在您的应用程序会话模式=“outproc”内的网络服务器上...表示会话将存储在您的应用程序会话模式=“状态服务器”之外的服务器上。 .表示会话将存储在数据库中的临时内存中会话模式=“sqlserver”...表示会话将永久存储在数据库中。

于 2015-04-30T16:17:30.603 回答
0

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

  • 进程内会话
  • 出进程会话
  • SQL-服务器会话
于 2013-07-05T09:31:13.627 回答