私はC# でSharePoint 2010 タイマー ジョブを開発しています。このジョブは、SQL データベースから取得した従業員のステータス (従業員が現在利用可能かどうか) を更新し、更新して従業員の SharePoint リストに格納します (望ましいアプローチは、指定された/ハードコードされたリストだけでなく、選択した任意のリストにアクセスします)。FeatureActivated メソッドと FeatureDeactived メソッドのカスタム コードを使用して、イベント レシーバー クラスを使用したタイマー ジョブのみを機能とする SharePoint の空のプロジェクトを作成しました。タイマー ジョブ クラスの Execute メソッドは、SqlClient を使用してデータを取得し、キー値が従業員 ID で値がステータスであるディクショナリ オブジェクトに格納します。次に、ディクショナリを使用して Employees SharePoint リストの従業員レコードを取得し、ステータスを更新します。
私の問題は、タイマー ジョブに選択したスコープに関係なく、目的の SharePoint リストにアクセスできないことです。SPWeb と SPSite を使用して、リストの URL をハードコーディングしようとしました。サイトのサイト コレクションを確認したところ、2 つのサイト コレクション (「/」、「testsitecollection」) があり、2 つ目はまったく使用されていません。
例:" SPWeb web = site.OpenWeb(); SPList list = web.Lists["Employees"];
例外がスローされます: "List "Employees" がhttp://www.mysiteで見つかりません"
誰かがこの問題について意見を持っているかどうか疑問に思っていました. ソース コードに関しては、次のような Web 上の多くの例に従いました: http://www.andrewconnell.com/blog/articles/CreatingCustomSharePointTimerJobs.aspx
Web で見つけたカスタム タイマー ジョブの例はすべて、タスク リストなどのフロント サイトのリストを更新します。
入力を追加してくれた人に感謝します。