2010-05-05 31 views
6

Tôi đoán việc bắt đầu công việc hẹn giờ từ bên trong mã yêu cầu thông tin đăng nhập của Quản trị viên trang trại. Tuy nhiên, tôi cần phải bắt đầu một công việc hẹn giờ từ một phần web sẽ được sử dụng trong bất kỳ trang web nào. Bây giờ khi tôi cố gắng để bắt đầu công việc nó mang lại cho tôi một truy cập bị từ chối lỗi rõ ràng vì bản sắc hồ bơi ứng dụng không phải là quản trị trang trại. Bất kỳ ý tưởng nào về cách giải quyết vấn đề này?Công việc hẹn giờ từ SPWeb

Xin cảm ơn,

Trả lời

6

Công việc hẹn giờ chạy với tư cách là quản trị viên trang trại và không được người dùng cuối kích hoạt trực tiếp. Vì một số công việc có thể là tài nguyên chuyên sâu, chỉ quản trị viên trang trại mới có thể tạo công việc mới hoặc sửa đổi lịch biểu cho các công việc hiện có.

Một giải pháp là sử dụng cơ sở hạ tầng SPWorkItem cho các tác vụ người dùng xếp hàng, sau đó được xử lý bởi công việc hẹn giờ tùy chỉnh bắt nguồn từ SPWorkItemJobDefinition. Webpart của bạn sẽ gọi SPSite.AddWorkItem để thêm mục công việc. Khi công việc hẹn giờ của bạn chạy, nó sẽ tìm kiếm bất kỳ mục công việc nào có phù hợp với WorkItemType GUID và gọi quá tải ProcessWorkItem.

3

Bạn đã đúng. Để bắt đầu công việc hẹn giờ, người dùng ứng dụng nhóm phải là quản trị viên trang trại. Kể từ khi bắt đầu một công việc hẹn giờ đòi hỏi bạn phải cập nhật một đối tượng SPJobDefinition với một SPSchedule. SPJobDefinitionSPPersistedObject được lưu trữ trong Cơ sở dữ liệu cấu hình SharePoint. Chỉ quản trị viên trang trại mới có thể viết vào db này.

Tôi không thấy cách nào để vượt qua vấn đề này.

Cách giải quyết: Tùy thuộc vào yêu cầu của bạn, bạn có thể viết một công việc chính chạy thường xuyên. Công việc này có thể truy vấn danh sách SharePoint và bắt đầu một công việc khác được xác định bởi một mục danh sách như vậy. Vì công việc chính chạy dưới tài khoản Quản trị viên trang trại, công việc sẽ có thể bắt đầu công việc hẹn giờ mới.