Timer Job FeatureActivated E escopo de recursos

Eu tenho trabalhado com alguns códigos que alguém deu-me para um trabalho de timer.  Ele não tinha fornecido o código de ativação do recurso real, então eu tinha que escrevê-lo, É claro.  Aproveitei Post do famoso blog de Andrew Connell sobre o assunto.

Estou usando o Visual Studio 2010 e implantação manteve a falhar com um erro "ocorreu um erro na etapa de implantação Add Solution': Referência de objeto não definida para uma instância de um objeto."

Eu estava tomando seu código demasiado literalmente.  Foi de escopo o recurso de nível de aplicativo da web, como mostrado:

image

Como resultado, são as propriedades que são enviadas para o receptor do aplicativo da web, não é um conjunto de sites.  No final, o código tem esta aparência:

public override void FeatureActivated(SPFeatureReceiverProperties Propriedades)
{

    // Não fazer o seguinte com recursos web app no escopo, Ele leva ao desespero Sorriso
    // SPSite t: Microsoft.SharePoint.SPSite site = Propriedades.Feature.Parent como SPSite t: Microsoft.SharePoint.SPSite;

    SPWebApplication wa = Propriedades.Feature.Parent como SPWebApplication;

    se (WA = = null) lançar nova exceção("webapp2 é nulo.");

    foreach (SPJobDefinition trabalho em wa.JobDefinitions)
    {

        Tente
        {
            se (trabalho.Nome = = List_JOB_NAME)

                trabalho.Excluir();
        }
        pegar (Exceção e)
        {
            lançar nova exceção("marcador de 2");
        } // catch exceção e
    }

    // Instale o trabalho

    WeatherForecastTimerJob weatherForecastTimerJob =
        WeatherForecastTimerJob novo(List_JOB_NAME, WA);

    SPMinuteSchedule agenda = novo SPMinuteSchedule();
    Agende.BeginSecond = 0;
    Agende.EndSecond = 59;
    Agende.Intervalo = 5;
    weatherForecastTimerJob.Schedule = agenda;
    weatherForecastTimerJob.Update();

}

A chave de Take-Away é que quando o recurso é escopo para uma correia fotorreceptora app, o SPFeatureReceiverProperties que SharePoint passa para o receptor de recurso tem parâmetros de nível de aplicativo da web.  Entrada de blog antiga de Andrew pressupõe que o escopo dele está no conjunto de sites.

</fim>

Subscreva ao meu blog.

Siga-me no Twitter em http://www.twitter.com/pagalvin

Deixar uma resposta

seu endereço de e-mail não será publicado. Campos obrigatórios são marcados *