5
報告狀態我需要一個配置列表中的網站集中在特定位置存在一個SharePoint計時器作業。如果該列表不存在,我想向用戶指出,以便他們可以創建(並且當然填充)所述列表和rerun the job。如何從SharePoint計時器作業
我可以使用下面的代碼寫入事件日誌,我知道我可以拋出一個異常來指示失敗的作業狀態,但是我想要做的就是拋出一個異常,並在消息中指出問題這不需要查看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));
}
這就引出了另一個問題,我想我會問seperately,A)如果日誌列表不存在',B),也許我應該添加的列表中FeatureActivation功能接收方法,而不是假設他們」已經手動創建? ,c)以編程方式添加列表,比手動創建列表好得多? – 2012-08-15 14:34:01
正如你所建議的那樣,我會建議你在功能接收器中創建列表。自動創建(幾乎)總是比手動創建更可取,因爲它可以減少工作量,增加穩定性並確保列表的設置在應用程序的所有實例(prod,test,dev)中完全相同。 – 2012-08-16 06:34:15
其他問題仍然依賴於cofig列表的硬編碼位置。我想在啓動該功能的網站集的根目錄中創建它,但是當我嘗試這種方法時,我無法使其正常工作。我將不得不將它作爲另一個問題發佈,然後用鏈接更新這個問題。 – 2012-08-16 14:19:52