Domanda

C'è un modo per ottenere tutti i lavori locali di contenuti dal codice dell'applicazione Web?

Sto cercando di elencare tutti i lavori su una pagina ASPX nel backend di una raccolta siti, ma ogni volta che eseguo questo:

ContentDeploymentJob.GetAllJobs()
.

Un'eccezione accessened è aumentata, dicendo che l'utente di esecuzione non è un amministratore di fattoria.Se lo provo con elevatorilifilizzati o impersonizione come Agin Admin che non funziona anche.

È stato utile?

Soluzione

Dopo alcuni mesi di non pensare a questo problema ho trovato una risposta:

Esegui il seguente script PowerShell e dovrebbe funzionare (testato su una fattoria autonoma):

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

Qui il mio codice di test (eseguito in un WebPart):

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top