Domanda

Ho creato un timer personalizzato di lavoro e distribuito a tutte le applicazioni web.In un custom amministrazione centrale della pagina dell'applicazione, vorrei mostrare link a questo processo timer (ad es.2 link, se ci sono 2 applicazioni web), cioètimer impostazioni del lavoro per rendere più facile per l'utente a trovare il lavoro.Quando l'utente fa clic sul link, mi piacerebbe aprire lo stesso processo timer impostazioni/schedule pagina che si apre quando si naviga tramite Amministrazione Centrale :Le Definizioni Di Processo.

Come posso costruire Url che punta alla mia custom processi timer impostazioni?Classe di attuazione SPFeatureReceiver ha GUID assegnato, ma non so come usare questo per ottenere un collegamento completo come:

http://srvr/_admin/JobEdit.aspx?JobId=ffccdd35-4444-4b22-b47b-73bf7039f777

Nota che il GUID nell'URL non è la stessa come il GUID previsto nel codice, come ogni web app avrà un URL diverso per il timer impostazioni del lavoro.Possibile che la URL in qualche modo essere ottenuto tramite SPWebApplication?

È stato utile?

Soluzione

Per ogni applicazione web è possibile effettuare le seguenti operazioni:

  1. Ottenere la vostra definizione del processo timer (SPJobDefinition) da SPWebApplication.JobDefinitions
  2. Ottenere il guid:

    string jobDefID = SPJobDefinition.Id.ToString();
    
  3. Aggiungere il guid della stringa di query

    http://srvr/_admin/JobEdit.aspx?JobId=jobDefID
    

Altri suggerimenti

Questo è come l'ho fatto:

SPWebApplication webApp = SPWebApplication.Lookup(new Uri(webAppUrl));

var customJob = (from job in webApp.JobDefinitions where job.Name == "MyTimerJobName" select job).Single(); // for some reason wont't work if I try to get the job using [name]

string jobUrl =  Microsoft.SharePoint.Administration.SPAdministrationWebApplication.Local.Sites[0].Url + "/_admin/JobEdit.aspx?JobId=" +  timerJob.Id.ToString();
.

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