在这里,我想了解ASP.NET中不同类型的会话,而不是会话状态。那是接受采访时提出的问题。
答案 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)
会话有三种,它们列出如下
制程中。
Outprocess。
Sql server session。
存储它们的地方。
inproc - 默认存储在web.config中。
outproc - 存储在服务器端。
Sql server - 存储在数据库中。
您可以在asp.net中使用以下类型的会话管理,您可以在web.config文件中定义
会话模式=“inproc”...表示会话将存储在应用程序中的Web服务器上 session mode =“outproc”....表示会话将存储在应用程序外部的服务器上 session mode =“stateserver”...表示会话将存储在数据库的临时内存中 session mode =“sqlserver”...表示会话将永久存储在数据库中。
答案 4 :(得分:0)
asp.net中有三种类型的会话。