我正在尝试编写一个应用程序来为所有在站点集合中已经拥有至少一个警报的人设置警报。我知道如何为所有这些用户获取用户对象,但是当我尝试为每个用户设置警报时,就会出现问题。对于某些用户来说,会出现一个 SPException,表示该列表不存在。我查看了 user.Alerts 属性,并且有一个 Web 字段,其中站点集合名称位于不工作的用户处。它仅适用于拥有正确网络以访问列表并设置警报的用户。有谁知道一种解决方法,以便我可以为我想要的所有用户设置警报?这是我用来设置警报的代码:
SPAlert alert = user.Alerts.Add();
alert.AlertType = SPAlertType.List;
alert.EventType = SPEventType.Add;
Console.WriteLine(alertWeb.Url+" "+ alertingListName);
alert.List = alertWeb.Lists.TryGetList(alertingListName);
alert.AlertFrequency = SPAlertFrequency.Immediate;
alert.AlwaysNotify = false;
alert.Update(false);
提前感谢您帮助我
我现在已经解决了自己的问题。我在这里发布解决方案,以便有相同问题的人可以找到它。问题是在用户对象属性中 user.alerts.web 是错误的网络。我通过不是从 web.alerts 集合而是从 web.allusers 集合获取用户对象来解决这个问题,以便正确的网络位于属性中。