【问题标题】:SharePoint 2013 Distributed Cache Service to store session state用于存储会话状态的 SharePoint 2013 分布式缓存服务
【发布时间】:2013-03-04 21:27:39
【问题描述】:

我们正在开发基于 SharePoint 2013 Foundation 的解决方案。 SharePoint 2013 中提供了一个新的分布式缓存服务。当我们检查 web.config 以获取新的示例 SharePoint Web 应用程序时,我们发现它被配置为使用“进程内”模式来存储会话状态。我们可以利用这种分布式缓存服务来存储会话状态吗?

我还在以下 msdn 文章中看到了用于在数据库中配置会话状态的 powershell cmdlet:http://technet.microsoft.com/en-us/library/ee890113.aspx。数据库是存储会话状态的首选方式,而不是 SharePoint 2013 的分布式缓存吗?

是否还有其他替代方法可用于在 SharePoint 2013 中存储会话状态?

【问题讨论】:

    标签: sharepoint sharepoint-2010 sharepoint-2013


    【解决方案1】:

    通常,您必须通过链接到的文章中的 Enable-SPSessionStateService PowerShell cmdlet 来使用 SharePoint 会话状态服务。

    SharePoint 分布式缓存服务适用于可缓存项目,尤其是源、登录令牌和应用程序令牌。我没有看到会话状态提供者的实现。这里有一个关于分布式缓存服务的很好的解释:

    该服务依赖于 Azure,或者更具体地说,依赖于 AppFabric 缓存基础架构。您可以实现自己的东西来访问这个缓存框架,如下所述:

    如前所述,SharePoint 使用会话状态服务,而后者又使用标准的 ASP.NET 会话状态:

    正如你所说的,状态服务的默认模式设置为In-Proc(在内存中)。您通常会将其设置为SQLServer,以便将会话状态保存到某个数据库中,并且可以由多个服务器检索。您在帖子中链接的 PowerShell cmdlet 会自动为您执行此操作。

    简而言之:通过实现您自己的 ASP.NET 会话状态处理程序,您可以绕过普通的 SharePoint 状态服务并利用分布式缓存,但这并不容易,而且使用状态数据库可能更容易。

    【讨论】:

    • 感谢@moontear 的快速回复。有一篇 msdn 文章提供了有关使用 AppFabric 缓存作为 ASP.NET 会话状态提供程序 (msdn.microsoft.com/en-us/library/ee790859(v=azure.10).aspx) 的信息。我可以在 SharePoint Web 应用程序配置文件中进行类似更改,从而使用 AppFabric 缓存作为会话提供程序吗?是否需要进行任何其他特定更改才能使其适用于 SharePoint?我想避免使用 SQL Server,因为 AppFabric 会为会话状态提供更好的性能。
    • 不错的发现。是的,您可以进行通常可以进行的任何 web.config 修改。当然这不会是微软的方式 - 所以基本上你必须尝试。
    猜你喜欢
    • 1970-01-01
    • 2015-03-17
    • 2018-06-03
    • 2010-11-14
    • 2017-12-04
    • 1970-01-01
    • 2020-01-06
    • 1970-01-01
    相关资源
    最近更新 更多