我正在构建一个由多个Web零件组成的SharePoint沙盒解决方案。我希望能够以某种方式以某种方式使用缓存POCO对象(普通的旧CLR对象),以使缓存在完整页面请求中持续存在,并且该缓存也可以在SharePoint Online中工作。

我看过以下机制:

  • 在文件系统或隔离存储中保存文件 - 由于System.IO名称空间似乎在沙盒解决方案中被阻止。
  • 使用ASP.NET缓存/会话/应用程序基础结构 - 不起作用,每次提出新页面请求时,缓存都是重置的。
  • 使用 Microsoft.Office.Server.ObjectCache.SPCache 基础架构 - 似乎不起作用,缓存的重置方式与ASP.NET缓存相同。
  • 使用手工编码的内存中缓存:((private static Dictionary<string, object> ...) - 不起作用,字典实例在HTTP页面请求中丢失。

以上所有内容是否意味着我在SharePoint沙盒解决方案中存储任何数据的唯一选择是使用SharePoint Lists/List-Items?

有帮助吗?

解决方案

是的,在这种情况下,SharePoint列表是您唯一的选择。

每个请求都从ASP.NET/SHAREPOINT将每个请求编码为特定的沙盒过程。这些过程和应用程序不能保证是相同的,甚至在同一台计算机上是相同的,因此任何类型的内存缓存都毫无疑问。

其他提示

您可以创建不会生成寄回的Silverlight应用程序,而不是创建WebParts。

再一次,由于客户端对象模型,Silverlight应用程序受到限制。

许可以下: CC-BY-SA归因
scroll top