計時器作業 FeatureActivated 和功能範圍

我一直在與一些代碼,有人遞給我一個計時器作業的合作。  他沒有提供的實際功能啟用代碼,所以我不得不把它寫, 答案是肯定的。  利用 安德魯 Connell 著名博客張貼內容 關於這個問題.

我使用的 Visual Studio 2010 和部署不斷失敗並出現錯誤"錯誤部署步驟中發生 '添加解決方案': 物件引用不設置到物件的實例。

我正在他的代碼太誇張了。  我範圍向 web 應用程式級別的功能, 如圖所示:

image

作為一個結果, 將被發送到接收方的屬性是從 web 應用程式, 不是一個網站的集合。  在結束, 代碼看起來像這樣:

公眾覆蓋 void FeatureActivated(SPFeatureReceiverProperties 屬性)
{

    // 不要做以下 web 應用程式作用域功能, 它會導致絕望 微笑
    // SPSite 網站 = 屬性。作為 SPSite Feature.Parent;

    SPWebApplication wa = 屬性。作為 SPWebApplication Feature.Parent;

    如果 (佤族 = = null) 引發新的異常("webapp2 是空的"。);

    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();

}

外賣的關鍵是,當該功能只限于一個 web 應用程式, SharePoint 傳遞給您功能接收機的 SPFeatureReceiverProperties 具有 web 應用程式級參數。  安德魯的舊博客條目假定它的範圍限於網站集合.

</結束>

訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

留言

您的電子郵件地址不會被公開. 必需的地方已做標記 *