是否有任何方法可以从Web应用程序代码中获取所有本地ContentDeployment作业?

我正在尝试在网站集的后端列出ASPX页面上的所有作业,但每次我执行这个时:

ContentDeploymentJob.GetAllJobs()
.

访问的异常提出,称执行用户不是FARM管理。如果我用高度的预期或冒充为农场管理员尝试它,它也没有工作。

有帮助吗?

解决方案

几个月后不考虑这个问题,我找到了一个答案:

执行以下powershell脚本,它应该工作(在独立农场上测试):

PS C:\Users\xxx> $contentService  = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
PS C:\Users\xxx> $contentService.RemoteAdministratorAccessDenied = $false
PS C:\Users\xxx> $contentService.Update()
.

在这里我的测试代码(在webpart中执行):

try
{
    ContentDeploymentJobCollection jobs = ContentDeploymentJob.GetAllJobs();
    foreach (ContentDeploymentJob job in jobs)
    {
        BulletedList1.Items.Add(job.Name);
    }
 }
 catch (Exception ex)
 {
     BulletedList1.Items.Add(ex.Message);
 }
.

许可以下: CC-BY-SA归因
scroll top