FeatureActivated משימת שעון העצר והיקף תכונה

אני עובד עם מספר קוד מישהו הגיש לי עבור משימת שעון עצר.  הוא לא סיפק את קוד ההפעלה של התכונה בפועל ולכן נאלצתי לכתוב אותו, בטח.  לקחתי את היתרון הצבת בלוג המפורסם של אנדרו קונל בנושא.

אני משתמש Visual Studio 2010 פריסה המשיך נכשל עם שגיאה "שגיאה אירעה בשלב פריסה 'הוסף פתרון': הפניה לאובייקט לא הוגדרה למופע של אובייקט."

שאני מעביר את הקוד שלו מדי פשוטו כמשמעו.  אני היה טווח את התכונה ברמת יישום האינטרנט, כפי שמוצג:

image

כתוצאה מכך, מאפייני הנשלחות המקלט הם מיישום אינטרנט, לא אוסף אתרים.  בסופו של דבר, הקוד נראה כך:

עקיפה ציבורית void FeatureActivated(מאפייני SPFeatureReceiverProperties)
{

    // אין לבצע את הפעולות הבאות עם תכונות יישום מסופחים אינטרנט, הוא מוביל לייאוש חיוך
    // אתר SPSite = מאפיינים.Feature.Parent כ SPSite;

    ווה SPWebApplication = מאפיינים.Feature.Parent כ SPWebApplication;

    אם (ווה = = null) לזרוק חריגה חדש("webapp2 הוא null".);

    foreach (עבודת SPJobDefinition ווה.JobDefinitions)
    {

        נסה
        {
            אם (המשימה.שם = = List_JOB_NAME)

                המשימה.מחק();
        }
        לתפוס (E חריג)
        {
            לזרוק חריגה חדש("סמן-2");
        } // לתפוס חריגה e
    }

    // להתקין את המשימה

    WeatherForecastTimerJob weatherForecastTimerJob =
        חדש WeatherForecastTimerJob(List_JOB_NAME, ווה);

    לוח זמנים של SPMinuteSchedule = SPMinuteSchedule חדש();
    לוח זמנים.BeginSecond = 0;
    לוח זמנים.EndSecond = 59;
    לוח זמנים.מרווח זמן = 5;
    weatherForecastTimerJob.Schedule = לוח זמנים;
    weatherForecastTimerJob.Update();

}

המפתח משתלמים הוא שכאשר בטווח של התכונה יישום אינטרנט, SPFeatureReceiverProperties העובר SharePoint שלך למקבל תכונה יש פרמטרים ברמת יישום האינטרנט.  בבלוג הישן של אנדרו מניחה שאותו בטווח של אוסף האתרים.

</קצה>

מנוי על הבלוג שלי.

עקוב אחרי הטוויטר ב http://www.twitter.com/pagalvin

תשאיר הודעה

כתובת האימייל שלך לא תפורסם. שדות חובה מסומנים *