事件接收器使多个WFE中的缓存无效

时间:2015-04-21 04:37:54

标签: c# caching sharepoint sharepoint-2013

当在多个WFE场中触发列表项事件接收器时,它是否会在其他WFE中触发?

我目前没有足够的资源来测试这个问题,而且我的搜索在这个问题上没有给出任何结论。

背景:我有一个设置列表,用于存储整个应用程序中使用的配置设置,普通用户无法访问此列表,因此RunWithElevatedPrivileges用于读取项目。我经常访问其中的一些项目,我想将它们存储在某种形式的缓存中,并添加一个项目事件接收器,以便在修改时使缓存无效。

1 个答案:

答案 0 :(得分:0)

在SharePoint场中,每个用户请求都可能由不同的WFE服务器处理。这取决于负载均衡器的决定。因此,每个更新都可以由不同的WFE服务器处理,如果在同一服务器上触发事件接收器并不重要。

您可以使用在与更新操作相同的线程中执行的同步事件接收器。但请记住,每个更新操作都可以由不同的服务器处理。

重点是使用所有服务器都可以访问的缓存情况。没有内存缓存会帮助你。您需要保留缓存,例如SQL。以下是有关SharePoint中缓存的MSDNMSDN篇文章。

请记住,并非所有数据都可以缓存,因为它们不是线程安全的。这意味着他们不能坚持下去。这些通常是文件处理程序,TCP端口......