如何从SharePoint计时器作业报告状态

Kel*_*nch 5 c# sharepoint exception timer-jobs

我有一个SharePoint计时器作业,需要配置列表存在于网站集的特定位置.如果该列表不存在,我想向用户表明,以便他们可以创建(并填充当然)所述列表并重新运行该作业.

我可以使用下面的代码写入事件日志,我知道我可以抛出异常来指示失败的作业状态,但我想要做的是抛出一个异常,并带有一条消息,指出问题的方式不是要求查看ULS或访问事件日志.到目前为止,我已经找到了帖子这样一个这一个没有太多细节.

所以有两个问题: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());
Run Code Online (Sandbox Code Playgroud)

我想用丢失的配置列表做什么

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));
}
Run Code Online (Sandbox Code Playgroud)

小智 1

我建议在配置列表旁边有一个单独的日志列表。在此列表中,您可以在需要时写入作业的状态,然后用户可以在此列表上设置通知,以便他们可以采取适当的措施。