Temporizador FeatureActivated de trabajo y el alcance de la función

He estado trabajando con algún código que alguien me entregó para un trabajo del temporizador.  Él no había proporcionado el código de activación de la función real así que tuve que escribir, Claro.  Aprovechó de De Andrew Connell famoso blog post sobre el tema.

Estoy utilizando Visual Studio 2010 y despliegue mantuvo con un error "error en paso de implementación Agregar solución: Referencia a objeto no establecida como instancia de un objeto."

Estaba tomando demasiado literalmente su código.  Me alcance de la función a nivel de la aplicación web, como se muestra:

image

Como un resultado, las propiedades que se envían al receptor son desde la aplicación web, no es una colección de sitios.  En el final, el código de este aspecto:

public override void FeatureActivated(Propiedades de SPFeatureReceiverProperties)
{

    // No lo siguiente con características del ámbito de aplicación web, conduce a la desesperación Sonreír
    // Sitio de SPSite = properties.Feature.Parent como SPSite;

    SPWebApplication wa = properties.Feature.Parent como SPWebApplication;

    Si (wa == null) throw new Exception("webapp2 es nulo".);

    foreach (Trabajo de SPJobDefinition en wa.JobDefinitions)
    {

        Intente
        {
            Si (trabajo.Nombre == List_JOB_NAME)

                trabajo.Eliminar();
        }
        capturas (Excepción e)
        {
            throw new Exception("marcador 2");
        } // capturar la excepción e
    }

    // instalar el trabajo

    WeatherForecastTimerJob weatherForecastTimerJob =
        WeatherForecastTimerJob nuevo(List_JOB_NAME, wa);

    SPMinuteSchedule schedule = SPMinuteSchedule nuevo();
    programar.BeginSecond = 0;
    programar.EndSecond = 59;
    programar.Intervalo = 5;
    weatherForecastTimerJob.Schedule = programación;
    weatherForecastTimerJob.Update();

}

La clave para llevar es que cuando la función es en el ámbito de una aplicación web, el SPFeatureReceiverProperties que SharePoint pasa a su receptor característica tiene parámetros de nivel de aplicación web.  Entrada de blog viejo de Andrew asume que es el ámbito de la colección de sitios.

</final>

Suscribirse a mi blog.

Sígueme en Twitter en http://www.twitter.com/pagalvin

Contesta

su dirección de correo electrónico no será publicada. Los campos necesarios están marcados *