Microsoft.AspNet.SessionState.SessionStateModule 2.0.0

前缀已保留
dotnet add package Microsoft.AspNet.SessionState.SessionStateModule --version 2.0.0                
NuGet\Install-Package Microsoft.AspNet.SessionState.SessionStateModule -Version 2.0.0                
该命令应在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="Microsoft.AspNet.SessionState.SessionStateModule" Version="2.0.0" />                
对于支持 包引用 的项目,将此 XML 节点复制到项目文件中以引用包。
paket add Microsoft.AspNet.SessionState.SessionStateModule --version 2.0.0                
#r "nuget: Microsoft.AspNet.SessionState.SessionStateModule, 2.0.0"                
#r 指令可以在 F# Interactive 和 Polyglot Notebooks 中使用。将此内容复制到交互工具或脚本的源代码中以引用包。
// Install Microsoft.AspNet.SessionState.SessionStateModule as a Cake Addin
#addin nuget:?package=Microsoft.AspNet.SessionState.SessionStateModule&version=2.0.0

// Install Microsoft.AspNet.SessionState.SessionStateModule as a Cake Tool
#tool nuget:?package=Microsoft.AspNet.SessionState.SessionStateModule&version=2.0.0                

Microsoft.AspNet.SessionState.SessionStateModule

SessionStateModule 是 ASP.NET 的默认会话状态处理器,它检索会话数据并将其写入会话状态存储。它在获取请求状态时已经异步操作,但它不支持对会话状态存储的异步读写。在 .NET Framework 4.6.2 版本中,我们引入了一个名为 ISessionStateModule 的新接口,以启用此场景。您可以在 这篇博客文章 中找到更多详细信息。

在您指定这些自定义提供者之一之前。您需要从您的 web.config 文件中删除现有的会话状态模块。此外,您必须注册新模块以代替它。

  <system.webServer>
    <modules>
      
      <remove name="Session" />
      <add name="Session" preCondition="integratedMode,managedHandler" type="Microsoft.AspNet.SessionState.SessionStateModuleAsync, Microsoft.AspNet.SessionState.SessionStateModule, Version=2.0.0.0, Culture=neutral" />
    </modules>
  </system.webServer>

Microsoft.AspNet.SessionState.SessionStateModule 设置

  1. appSetting aspnet:RequestQueueLimitPerSession

    如何使用 - 将 <add key="aspnet:RequestQueueLimitPerSession" value="[int]"/> 添加到 web.config 中的 appSettings 部分。

    描述 - 如果多个具有相同sessionid的请求尝试并发获取sessionstate,则asp.net仅允许一个请求获取sessionstate。当存在大量具有相同sessionid的请求且请求未能快速释放sessionstate时,这会导致性能问题,因为asp.net默认情况下会为每个此类请求启动一个计时器,每0.5秒获取一次sessionstate。如果使用out-proc sessionstate提供程序,这会更糟。因为这将可能使用大部分out-proc存储连接资源。使用此设置,当相同sessionid的并发请求数量达到配置的数量时,asp.net将结束请求。

  2. appSetting aspnet:AllowConcurrentRequestsPerSession

    如何使用 - 在web.config中appSettings部分添加<add key="aspnet:AllowConcurrentRequestsPerSession" value="[bool]"/>

    描述 - 如果多个具有相同sessionid的请求尝试并发获取sessionstate,asp.net仅允许一个请求获取sessionstate。使用此设置,asp.net将允许多个具有相同sessionid的请求获取sessionstate,但不保证访问sessionstate的线程安全。

产品 兼容和额外的计算目标框架版本。
.NET Framework net462 兼容。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。
兼容目标框架
包含的目标框架(在包中)
更多关于目标框架.NET Standard的信息。

此包没有依赖项。

NuGet包 (10)

显示依赖于Microsoft.AspNet.SessionState.SessionStateModule的前5个NuGet包

下载
Microsoft.Web.RedisSessionStateProvider

为redis缓存提供的自定义sessionstate提供程序。

Microsoft.AspNet.SessionState.SqlSessionStateProviderAsync

在 .Net 4.6.2中,asp.net启用了开发者可以连接的SessionState模块的异步版本,这是一种非常适合非内存SessionState数据存储的选择。此SessionState提供程序使用SQL Server作为数据存储,并利用异步数据库操作以提供更好的可扩展性。

CouchbaseAspNet

Couchbase .NET SDK的ASP.NET Full Framework SessionState和OutputCache提供程序

Microsoft.AspNet.SessionState.CosmosDBSessionStateProviderAsync

在 .Net 4.6.2 中,asp.net 允许开发者插入 SessionState 模块异步版本,该版本非常适合非内存 SessionState 数据存储。该 SessionState 提供者使用 CosmosDB 作为数据存储,并利用异步数据库操作以提供更好的可扩展性。

Oriflame.Web.RedisSessionStateProvider

针对 Redis 缓存的自定义会话状态提供者

GitHub 代码库 (1)

显示依赖 Microsoft.AspNet.SessionState.SessionStateModule 的前 1 个流行的 GitHub 代码库

代码库 星级
Azure/aspnet-redis-providers
ASP.NET Redis 提供者
版本 下载 上次更新时间
2.0.0 313,458 6/15/2023
2.0.0-preview1 3,895 4/12/2023
1.1.0 8,584,980 5/12/2017
1.0.0 12,823 9/30/2016