我有一个SharePoint计时器作业,需要配置列表存在于网站集的特定位置。如果该列表不存在,我想向用户表明,以便他们可以创建(并填充)所述列表和rerun the job。
我可以使用下面的代码写入事件日志,我知道我可以抛出异常来指示失败的作业状态,但我想要做的是抛出一个异常,并带有一条消息,指出问题的方式是不需要查看ULS或访问事件日志。我到目前为止发现的帖子like this one和this one没有太多详细信息。
所以有两个问题: 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));
}
答案 0 :(得分:1)
我建议在配置列表旁边有一个单独的日志列表。在此列表中,您可以在需要时写入作业的状态,然后用户可以在此列表中设置通知,以便他们采取适当的措施。