Χρονιστής FeatureActivated εργασίας και τη δυνατότητα εφαρμογής

Έχω εργαστεί με κάποιο κωδικό που κάποιος παραδόθηκε σε μένα για μια εργασία χρονομέτρησης.  Δεν είχα παρείχε το πραγματικό χαρακτηριστικό κωδικό ενεργοποίησης, έτσι έπρεπε να το γράψω, Φυσικά.  Πήρα πλεονέκτημα του Του Andrew Connell διάσημο blog post σχετικά με το θέμα.

Είμαι με τη χρήση Visual Studio 2010 και ανάπτυξης διατηρούνται παραλείποντας με σφάλμα "Παρουσιάστηκε σφάλμα στο βήμα ανάπτυξης «Προσθήκη λύση»: Αντικείμενο αναφοράς δεν έχει οριστεί σε μια παρουσία ενός αντικειμένου.»

Έπαιρνα πολύ κυριολεκτικά του κώδικα.  Εγώ φέροντος το χαρακτηριστικό γνώρισμα σε επίπεδο εφαρμογής web, όπως φαίνεται:

image

Ως εκ τούτου, Οι ιδιότητες που στέλνονται στο δέκτη είναι από την εφαρμογή web, δεν είναι μια συλλογή τοποθεσιών.  Στο τέλος, ο κώδικας μοιάζει με αυτό:

κοινό παρακάμψετε άκυρη FeatureActivated(SPFeatureReceiverProperties ιδιότητες)
{

    // Μην το κάνετε τα ακόλουθα με web app scoped χαρακτηριστικά, Αυτό οδηγεί στην απόγνωση Χαμόγελο
    // SPSite site = ιδιότητες.Feature.Parent ως SPSite;

    SPWebApplication wa = ιδιότητες.Feature.Parent ως SPWebApplication;

    Αν (WA == «Void») ρίξει νέα εξαίρεση("webapp2 είναι null.");

    foreach (SPJobDefinition δουλειά στο wa.JobDefinitions)
    {

        Δοκιμάστε
        {
            Αν (εργασία.Όνομα == List_JOB_NAME)

                εργασία.Διαγραφή();
        }
        αλιευμάτων (Εξαίρεση ε)
        {
            ρίξει νέα εξαίρεση("δείκτης 2");
        } // πιάσει την εξαίρεση e
    }

    // εγκαταστήσετε τη δουλειά

    WeatherForecastTimerJob weatherForecastTimerJob =
        νέα WeatherForecastTimerJob(List_JOB_NAME, WA);

    Πρόγραμμα SPMinuteSchedule = νέα SPMinuteSchedule();
    χρονοδιάγραμμα.BeginSecond = 0;
    χρονοδιάγραμμα.EndSecond = 59;
    χρονοδιάγραμμα.Διάστημα = 5;
    weatherForecastTimerJob.Schedule = το πρόγραμμα;
    weatherForecastTimerJob.Update();

}

Το κλειδί take-away είναι ότι όταν το χαρακτηριστικό είναι scoped σε έναν Ιστό app, το SPFeatureReceiverProperties που του SharePoint που περνάει στο δέκτη σας χαρακτηριστικό έχει web app επίπεδο παραμέτρους.  Παλαιά είσοδο blog του Ανδρέα υποθέτει είναι scoped στη συλλογή τοποθεσιών.

</Τέλος>

Εγγραφείτε στο blog μου.

Συνέχεια μου για Twitter σε http://www.twitter.com/pagalvin

Αφήνω μια απάντηση

Η διεύθυνση email σας δεν θα δημοσιευθεί. τα απαιτούμενα πεδία είναι επισημασμένα *