2011-11-15 16 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