Saya telah bekerja dengan beberapa kod yang seseorang menyerahkan kepada saya untuk kerja pemasa. Dia tidak memberikan ciri kod pengaktifan sebenar jadi saya terpaksa menulis, sudah tentu. Saya mengambil kesempatan daripada Andrew Connell posting blog yang terkenal tentang subjek.
Saya menggunakan Visual Studio 2010 dan penggunaan terus gagal dengan ralat "Ralat berlaku dalam langkah penggunaan 'Tambah solusi': Rujukan objek tidak disetkan kepada sebuah instance dari sebuah objek."
Saya telah mengambil kod Nya terlalu literal. Saya adalah scoping ciri tersebut ke peringkat aplikasi web, seperti yang ditunjukkan:
Hasilnya, sifat-sifat yang dihantar ke penerima adalah dari aplikasi web, tidak koleksi tapak. Pada akhir, Kod kelihatan seperti ini:
awam mengatasi FeatureActivated tidak sah(Sifat-sifat SPFeatureReceiverProperties)
{// Tidak melakukan perkara-perkara berikut dengan ciri-ciri skop aplikasi web, Ia membawa kepada putus asa
// Laman web SPSite = sifat-sifat. Feature.Parent sebagai SPSite;SPWebApplication wa = sifat-sifat. Feature.Parent sebagai SPWebApplication;
jika (WA == ' void ') membuang pengecualian baru("webapp2 adalah tidak sah.");
foreach (SPJobDefinition kerja di wa. JobDefinitions)
{cuba
{
jika (kerja. Nama == List_JOB_NAME)kerja. Hapus();
}
menangkap (E pengecualian)
{
membuang pengecualian baru("penanda 2");
} // menangkap e pengecualian
}// kerja memasang
WeatherForecastTimerJob weatherForecastTimerJob =
WeatherForecastTimerJob baru(List_JOB_NAME, WA);Jadual SPMinuteSchedule = baru SPMinuteSchedule();
Jadual. BeginSecond = 0;
Jadual. EndSecond = 59;
Jadual. Selang = 5;
weatherForecastTimerJob.Schedule = Jadual;
weatherForecastTimerJob.Update();}
Kekunci runcit adalah bahawa apabila ciri-ciri skop aplikasi web, SPFeatureReceiverProperties yang SharePoint mengalir kepada penerima ciri anda mempunyai parameter aras aplikasi web. Andrew's entry blog lama menganggap ia adalah skop lokasi pengumpulan.
</akhir>
Mengikuti aku di Twitter http://www.twitter.com/pagalvin