我们正在开发基于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中存储会话状态?
答案 0 :(得分:1)
通常,您必须使用链接到的文章中的Enable-SPSessionStateService
PowerShell cmdlet来使用SharePoint会话状态服务。
SharePoint分布式缓存服务适用于可缓存项目,尤其是Feed,登录标记和应用程序标记。我没有看到会话状态提供程序的实现。这里有关于分布式缓存服务的一个很好的解释:
该服务依赖于Azure或更具体地依赖于AppFabric缓存基础结构。您可以实现自己的东西来访问此缓存框架,如下所述:
如前所述,SharePoint使用会话状态服务,后者又使用标准的ASP.NET会话状态:
正如您所说,状态服务的默认模式设置为In-Proc
(在内存中)。您通常会将其设置为SQLServer
,以便将会话状态保存到某个数据库,并且可以由多个服务器检索。您在帖子中链接的PowerShell cmdlet会自动为您执行此操作。
简而言之:通过实现自己的ASP.NET会话状态处理程序,您可以规避正常的SharePoint状态服务并利用分布式缓存,但这并不容易,也许只使用State数据库会更容易。