Site koleksiyonunda belirli bir konumda bulunacak bir yapılandırma listesi gerektiren bir SharePoint zamanlayıcı işim var. Eğer bu liste mevcut değilse, kullanıcıya bu listeyi oluşturabilmeleri ve (rerun the job) kurduklarını belirtmek istiyorum.Bir SharePoint zamanlayıcı işinden durum bildirme
Aşağıdaki kodla Olay Günlüğüne yazabilirim ve başarısız bir iş durumunu belirtmek için bir istisna atabileceğimi biliyorum, ancak yapmak istediğim, sorunu bir şekilde belirten bir iletiyle bir istisna atmaktır Bu ULS'ye bakmayı veya Etkinlik günlüğüne erişmeyi gerektirmez. Şu ana kadar bulduğum gönderiler like this one ve this one çok fazla ayrıntı içermiyor.
Yani iki soru: 1) Bir zamanlayıcı işi istisnası için bir hata iletisi sağlamanın bir yolu var mı? 2) Exception() 'dan atmak için daha iyi bir seçenek var mı? site koleksiyonu
SPDiagnosticsService.Local.WriteEvent(0,
new SPDiagnosticsCategory("MyCategory",
TraceSeverity.Unexpected,
EventSeverity.ErrorCritical),
EventSeverity.ErrorCritical,
"Assert failed: if (!spweb.Exists)" + sp.Url,
sp.ToString());
eksik olduğunda
Olay günlüğü ben
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));
}
Bu, ayrı bir şekilde sorabileceğimi düşündüğüm başka bir soruya yol açıyor, a) günlük listesi yoksa ne var ?, b) belki de listelerini FeatureActivation özellik alıcı yöntemine eklemek yerine manuel olarak oluşturuldu mu? c) Programları, el ile oluşturduklarından çok daha iyi bir şekilde listeler mi ekliyor? –
Önerirseniz, bunun yerine özellik alıcıda liste oluşturmanızı öneririm. Otomatik yaratma (hemen hemen) her zaman manuel oluşturmaya tercih edilir, çünkü çalışma süresini azaltır, stabiliteyi artırır ve liste (ler) için ayarların, uygulamanızın tüm örnekleri (prod, test, dev) için tam olarak aynı olmasını sağlar. –
Diğer sorunlar, cofig listesi için kodlanmış bir yere bağımlı gibi kalır. Bu özelliği, özelliği aktif hale getiren site koleksiyonunun kökünde oluşturmak istiyorum ancak bu yaklaşımı denediğimde çalışmaya başlayamadım. Bunu başka bir soru olarak göndermem ve sonra bunu bir bağlantıyla güncelleyeceğim. –