会话状态提供程序(AppFabric 1.1 缓存)

Microsoft AppFabric 1.1 for Windows Server 会话状态提供程序是一种用于 ASP.NET 应用程序的进程外存储机制。此提供程序使您能够在 AppFabric 缓存中(而非在内存或在 SQL Server 数据库中)存储会话状态。

功能

相比于过去的 ASP.NET 会话状态提供程序,AppFabric 会话状态提供程序具有以下改进:

  • 它在内部使用 NetDataContractSerializer 类进行会话状态序列化。

  • 它可以将会话状态存储为一个 Blob 或单独的项目。

  • 它可以在不同的 ASP.NET 应用程序之间共享会话状态。

  • 它支持同时访问多个读取程序和单个写入程序的同一个会话状态集。

  • 它可以使用压缩。

使用 NetDataContractSerializer 类进行序列化将带来对更多可序列化类型的支持,其中包括对二进制可序列化类型的支持。

会话状态提供程序可将会话状态作为单个 Blob 进行存储和检索,这是提供程序在过去所使用的方法。然而,它还可以将会话状态存储为单独的密钥值对。在此模式下,将根据请求从缓存中检索项目。这样做可以在处理会话状态中的大小对象组合时带来增强的性能。要求只使用较小对象的页面将不必检索较大的项目并对它们执行反序列化操作。

备注

只有 Microsoft AppFabric 1.1 for Windows Server 内部部署才支持在会话状态中存储单独密钥值对这一功能。在云计算中,Windows Azure 缓存 具有类似的会话状态提供程序,但当前不支持此功能。

此提供程序仅支持不同 ASP.NET 应用程序读取和写入相同会话状态数据的功能。例如,某位开发人员拥有两个不同的 ASP.NET 站点:/contoso 和 /adventureworks。可以在每个 Web 应用程序中将会话状态提供程序配置为指向缓存群集中的同一会话状态存储。因此,两种应用程序都将读取和写入任何给定会话标识符的同一会话数据。

会话状态提供程序支持同时访问多个读取程序和单个写入程序的同一会话状态集。在此情况下,读取程序被定义为标记为使用“只读”会话状态的页面。如果应用程序的大多数会话状态访问模式仅要求只读权限就能访问会话状态,则过度使用 AJAX 回调的应用程序将不会遇到服务器端请求排队的情况。

压缩是 Microsoft AppFabric 1.1 for Windows Server 缓存 的一个功能。在配置文件中,您可以在具有 isCompressionEnabled 属性的 dataCacheClient 元素中启用缓存。下面的示例显示了一个名为 default 且已启用压缩的 dataCacheClient

    <dataCacheClient name="default" isCompressionEnabled="true">
      <hosts>
        <host name="CacheServer1" cachePort="22233" />
        <host name="CacheServer2" cachePort="22233" />
      </hosts>
    </dataCacheClient>
Important要点
如果启用了压缩,则必须更新所有缓存客户端才能使用最新的 Microsoft AppFabric 1.1 for Windows Server SDK。

本部分内容

另请参阅

概念

使用用于 AppFabric 1.1 的 ASP.NET 4 缓存提供程序

  2012-03-05