2012-08-14 27 views
5

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)); 
} 

cevap

1

ben yanında ayrı bir log-listesine sahip öneriyoruz eksik yapılandırma listesi ile yapmak istiyorum ne kullanılır yapılandırma listesi. Bu listede, ihtiyaç duyulduğunda işin durumunu yazabilir ve ardından kullanıcı (lar) bu listeyi kurmak için uygun önlemleri alabilecek bir bildirim alabilir.

+0

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? –

+0

Ö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. –

+0

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. –