Bonjour à tous,
Je pose pas mal de questions en ce moment et je m'excuse par avance!
Je recherche activement via les forums, blogs, msdn etc.. mais la j'ai une erreur et je ne comprend pas...
Donc je veux créer une tâche planifiées [Timer Job] avec SPJobDefinition.
Je passe une une Feature pour l'activer.
J'ai donc créer un projet:
Ma classe où je défini mon Job
J'ajoute mon feature.xml qui nous permettra d'ajouter notre job
J'ajoute également une nouvelle classe qui nous permettra d'ajouter notre job lors de l'activation de la feature. (et suppression)
Une fois que tout est créé et en prenant compte des différents tutos, etc. Je lance mon WPBuilder et créer une solution.
Je déploie ma feature, je vais sur l'administration centrale de SharePoint pour déployer ma solution et là c'est le drame....^^ erreur!
J'ai beau cherché, bien regardé mon code, je n'arrive pas a trouver le probleme...snif, et je comprend rien a ce message d'erreur!!Nom : maSolution.wsp
Type : Solution principale
Contient des ressources d'applications Web : Non
Contient un assembly global : Oui
Contient une stratégie de sécurité d'accès du code : Non
Type de serveur de déploiement : Serveur Web frontal
État du déploiement : Erreur
Déployée sur : Aucun
Résultats de la dernière opération : Échec de l'installation des fonctionnalités pendant le déploiement de la solution.
Détails de la dernière opération : VM-MOSSDEV-1 : Échec de la création de l'objet du récepteur de fonctionnalité depuis l'assembly « maSolution, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1c266cb573f4a833 », de type « maSolution.EnregistrementSynchro » pour la fonctionnalité b80d14a9-8b1a-4938-ada3-750a85885b68: System.ArgumentNullException: La valeur ne peut pas être null.
Nom du paramètre : type
à System.Activator.CreateInstance(Type type, Boolean nonPublic)
à System.Activator.CreateInstance(Type type)
à Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
Le probleme doit provenir de la classe qui hérite de SPFeatureReceiver
Si quelq'un à une idée!Ca serai cool! ^^
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 using System; using System.Collections.Generic; using System.Text; using Microsoft.SharePoint; using Microsoft.SharePoint.Administration; using Microsoft.SharePoint.Utilities; using System.Configuration; namespace maSolution { class EnregistrementSynchro : SPFeatureReceiver { private const string STR_Synchro = "Synchronisation Espace Projet - CSIBO"; public override void FeatureActivated(SPFeatureReceiverProperties properties) { //SPSite site = properties.Feature.Parent as SPSite; SPSite site = new SPSite(ConfigurationManager.AppSettings["url_Serveur"]); // On s'assure de bien supprimer toutes les instances du job avant d'en recréer une nouvelle. DeletePreviousJob(site); // On passe au constructeur, une série de paramètres provenant entre autres, du property bag de la feature SynchronisationEPC job = new SynchronisationEPC(STR_Synchro,site.WebApplication);// etc ...); // Il existe les equivalents en Daily et Weekly Schedule SPMinuteSchedule schedule = new SPMinuteSchedule(); // Cette configuration du timer prévoit de le lancer toute les minutes schedule.BeginSecond = 0; schedule.EndSecond = 59; schedule.Interval = 1; job.Schedule = schedule; job.Update(); } public override void FeatureDeactivating(SPFeatureReceiverProperties properties) { SPSite site = new SPSite(ConfigurationManager.AppSettings["url_Serveur"]); DeletePreviousJob(site); } private void DeletePreviousJob(SPSite site) { foreach (SPJobDefinition jobDefinition in site.WebApplication.JobDefinitions) { if (jobDefinition.Title == STR_Synchro) jobDefinition.Delete(); } } public override void FeatureInstalled(SPFeatureReceiverProperties properties) { //throw new Exception("The method or operation is not implemented."); } public override void FeatureUninstalling(SPFeatureReceiverProperties properties) { //throw new Exception("The method or operation is not implemented."); } } }
D'avance merci!!
Partager