2012-08-14 19 views
5

Tôi có công việc hẹn giờ SharePoint yêu cầu danh sách cấu hình tồn tại ở một vị trí cụ thể trong tuyển tập site. Nếu danh sách đó không tồn tại, tôi muốn chỉ ra rằng cho người dùng để họ có thể tạo (và cư trú tất nhiên) cho biết danh sách và rerun the job.Cách báo cáo trạng thái từ công việc hẹn giờ SharePoint

Tôi có thể ghi vào Nhật ký sự kiện bằng mã bên dưới và tôi biết tôi có thể ném ngoại lệ để cho biết trạng thái công việc thất bại, nhưng điều tôi muốn làm là ném ngoại lệ với thông báo cho biết vấn đề theo cách không yêu cầu tìm kiếm thông qua ULS hoặc có quyền truy cập vào Nhật ký sự kiện. Các bài đăng tôi đã tìm thấy cho đến nay like this onethis one không có quá nhiều chi tiết.

Vì vậy, hai câu hỏi: 1) Có cách nào để cung cấp thông báo lỗi cho ngoại lệ công việc hẹn giờ không? 2) Có lựa chọn nào tốt hơn để ném ngoại trừ()?

tổ chức sự kiện khai thác gỗ được sử dụng khi các bộ sưu tập trang web thiếu

SPDiagnosticsService.Local.WriteEvent(0, 
    new SPDiagnosticsCategory("MyCategory", 
     TraceSeverity.Unexpected, 
     EventSeverity.ErrorCritical), 
    EventSeverity.ErrorCritical, 
    "Assert failed: if (!spweb.Exists)" + sp.Url, 
    sp.ToString()); 

Những gì tôi muốn làm với các thiếu danh sách cấu hình

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

Trả lời

1

tôi sẽ khuyên bạn nên có một bản ghi-danh mục riêng bên cạnh danh sách cấu hình. Trong danh sách này, bạn có thể viết trạng thái của công việc khi cần và sau đó người dùng có thể có thông báo được thiết lập trong danh sách này để họ có thể thực hiện các biện pháp thích hợp.

+0

Điều này dẫn đến một câu hỏi khác mà tôi nghĩ tôi sẽ hỏi riêng, a) nếu danh sách nhật ký không tồn tại ?, b) có lẽ tôi nên thêm danh sách trong phương thức tính năng FeatureActivation thay vì giả sử chúng ' đã được tạo thủ công? , c) có lập trình thêm các danh sách tốt hơn nhiều so với việc tạo thủ công chúng? –

+0

Tôi khuyên bạn nên, như bạn đề nghị, thay vào đó bạn tạo danh sách trong trình thu thập tính năng. Tự động tạo (hầu như) luôn thích hợp hơn cho việc tạo thủ công vì nó làm giảm công việc, tăng tính ổn định và đảm bảo rằng các thiết lập cho (các) danh sách giống hệt nhau trên tất cả các trường hợp của bạn (prod, test, dev). –

+0

Các vấn đề khác vẫn như một sự phụ thuộc vào một vị trí mã hóa cứng cho danh sách cofig. Tôi muốn tạo nó trong thư mục gốc của tuyển tập trang đã kích hoạt tính năng nhưng khi tôi thử phương pháp đó, tôi không thể làm cho nó hoạt động được. Tôi sẽ phải đăng nó như một câu hỏi khác và sau đó cập nhật câu hỏi này với một liên kết. –

Các vấn đề liên quan