2011-11-15 15 views
1

在Sharepoint JobDefinition的執行方法中獲取SPSite的最佳方式是什麼?在Sharepoint的spjobDefinition中調用SPsite的正確方法

我用下面的代碼:

SPServer ms = SPServer.Local; 
SPSite msite = new SPSite(server); 

但在SharePoint場中實現時它不工作...如果我嘗試

SPSite msite = SPContext.Current.Site; 

它不會因爲SPContext工作不存在於作業的執行中...

有什麼想法?

謝謝...... !!!

回答

3
SPFarm farm = SPFarm.Local;  
SPWebService webService = farm.Services.GetValue<SPWebService>(""); 
SPWebApplication webApplication = webService.WebApplications["Web Application name"]; 
foreach (SPSite site in webApplication.Sites)  
{ 
    // ... 
} 

對於Web Application-Scoped timer jobs您還可以使用SPJobDefinition.Parent屬性,並將其強制轉換爲SPWebApplication類型。

+0

特別感謝! – carlos