サイトコレクションの特定の場所に構成リストが存在する必要があるSharePointタイマージョブがあります。そのリストが存在しない場合は、ユーザーがそのリストを作成(そしてもちろんデータを入力)してジョブを再実行できるように、そのことをユーザーに示したいと思います。
以下のコードを使用してイベントログに書き込むことができ、失敗したジョブのステータスを示す例外をスローできることはわかっていますが、私がやりたいのは、問題を示さない方法で問題を示すメッセージを含む例外をスローすることです。 ULSを確認するか、イベントログにアクセスする必要があります。私がこれまでに見つけた投稿はこれと同じで、これにはあまり詳細がありません。
したがって、2つの質問があります。1)タイマージョブ例外の失敗メッセージを提供する方法はありますか?2)Exception()よりもスローする方が良い選択肢はありますか?
サイトコレクションが欠落しているときに使用されるイベントログ
SPDiagnosticsService.Local.WriteEvent(0,
new SPDiagnosticsCategory("MyCategory",
TraceSeverity.Unexpected,
EventSeverity.ErrorCritical),
EventSeverity.ErrorCritical,
"Assert failed: if (!spweb.Exists)" + sp.Url,
sp.ToString());
不足している構成リストをどうするか
bool configListExists = ListExists(spweb, ConfigListName);
if (! configListExists)
{
ReportMissingConfigList();
throw new Exception("Configuration list not found");
}
public static bool ListExists(SPWeb web, string listName)
{
return web.Lists.Cast<SPList>().Any(list => string.Equals(list.Title, listName));
}