1

サイトコレクションで少なくとも 1 つのアラートを既に持っているすべての人のリストにアラートを設定するアプリケーションを作成しようとしています。このすべてのユーザーのユーザー オブジェクトを取得する方法はわかっていますが、ユーザーごとにアラートを設定しようとすると、問題が発生します。一部のユーザーには、リストが存在しないことを示す SPException が発生します。user.Alerts プロパティを調べたところ、サイトコレクション名が機能しないユーザーにある Web フィールドがあります。リストにアクセスしてアラートを設定するための適切な 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 であったことです。web.alerts コレクションからではなく、web.allusers コレクションからユーザー オブジェクトを取得することで、この問題を解決しました。

4

0 に答える 0