Ich arbeite mit einigen Code, die jemand an mich für einen Zeitgeberauftrag übergeben. Er hatte nicht den tatsächlichen KE-Aktivierungs-Code bereitgestellt, also musste ich es schreiben, Natürlich. Ich nutzte Andrew Connell bekannten Blog post zum Thema.
Ich benutze Visual Studio 2010 und Bereitstellung gehalten fehl mit der Fehlermeldung "Fehler in Bereitstellungsschritt"Hinzufügen-Lösung": Der Objektverweis nicht auf eine Instanz eines Objekts festgelegt."
Ich nahm seinen Code zu wörtlich. Ich war das Feature auf der Ebene der Webanwendung Bereichsdefinition, wie gezeigt:
Als Folge, die Eigenschaften, die an Empfänger gesendet werden, werden von der Webanwendung, keiner Websitesammlung. Am Ende, der Code sieht wie folgt aus:
Public override void FeatureActivated(SPFeatureReceiverProperties Eigenschaften)
{// Nicht mit Web app Gültigkeitsbereich Funktionen, Es führt zur Verzweiflung
// SPSite Site = Properties.Feature.Parent als SPSite;SPWebApplication wa = Properties.Feature.Parent als SPWebApplication;
If (WA == Null) thrownew Exception("webapp2 ist null.");
foreach (SPJobDefinition Job wa.JobDefinitions)
{versuchen
{
If (Stelle.Name == List_JOB_NAME)Stelle.Löschen();
}
fangen (Ausnahme e)
{
thrownew Exception("Markierung 2");
} // Catch Exception e
}// Installieren Sie den Auftrag
WeatherForecastTimerJob WeatherForecastTimerJob =
neue WeatherForecastTimerJob(List_JOB_NAME, WA);SPMinuteSchedule Zeitplan = neue SPMinuteSchedule();
Zeitplan.BeginSecond = 0;
Zeitplan.EndSecond = 59;
Zeitplan.Interval = 5;
weatherForecastTimerJob.Schedule = Zeitplan;
weatherForecastTimerJob.Update();}
Der Schlüssel zum Mitnehmen ist, dass, wenn die Funktion auf eine Web-app beschränkt ist, die SPFeatureReceiverProperties, die SharePoint an Ihr Feature-Empfänger übergibt hat Web app Parameter. Andrews alte Blog-Eintrag wird davon ausgegangen, dass es auf der Seite Websitesammlung beschränkt ist.
</Ende>
Folgen Sie mir auf Twitter bei http://www.twitter.com/pagalvin