事件接收器,用于使多个 WFE 中的缓存失效



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

我目前没有资源自己测试这一点,我的搜索也没有给我关于这个问题的结论。

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

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

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

关键是使用所有服务器都可以访问的缓存情况。内存缓存中没有将帮助您。您需要将缓存持久化.SQL例如。以下是有关 SharePoint 中缓存的 MSDN、MSDN 文章。

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

最新更新