2011-12-21 7 views
1

J'ai un gestionnaire d'événements qui remplace la méthode ItemAdded. Cela fonctionne bien sur mon environnement DEV mais sur mon environnement LIVE, il ne se déclenche pas. Je me demande s'il y a quelque chose qui ne va pas dans la façon dont je l'ai mis en place.Le récepteur d'événements Sharepoint ne fonctionne pas

La classe est déclarée comme ceci.

public class SitesEventHandler : SPItemEventReceiver { 

    public override void ItemAdded(SPItemEventProperties properties) { 
     //... code removed. 
    } 
} 

J'ai ajouté le gestionnaire d'événements comme celui-ci:

SPList sites = web.Lists["Sites"]; 
sites.EventReceivers.Add(SPEventReceiverType.ItemAdded, "MossServices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=6e99", "MossServices.SitesEventHandler"); 

Je sais que l'événement a été ajouté, mais je me demande s'il y a un pas que je l'ai manqué.

EDIT J'ai trouvé que ça fonctionne bien quand je l'utilise en tant qu'administrateur mais pas comme les autres. Je dois admettre que je pensais que ça pouvait être des permissions. Quelqu'un pourrait-il me dire pourquoi cela fonctionne pour un administrateur système, mais pas un gestionnaire de contenu? Encore une fois, y a-t-il quelque chose dans la mise en place que j'aurais dû faire? Merci

Répondre

1

Le problème ici était pas avec la façon dont le gestionnaire d'événements/récepteur a été enregistré ou avec le code dans la classe. C'était un problème avec les permissions.

Ce qui m'a vraiment aidé cherchais dans les journaux que Sharepoint écrit: C: \ Program Files \ Common Files \ Microsoft Shared \ extensions serveur Web \ 12 \ LOGS

Ce lien m'a aidé avec mon problème particulier: http://sharenotes.wordpress.com/2008/03/18/cannot-open-log-for-source-you-may-not-have-write-access/

Espérons que cela aide quelqu'un. Cela a l'air d'un hack sale, mais parfois l'option d'abandonner entièrement un système et de refaire les années précédentes de hacks sales n'est tout simplement pas une option.

1

Le PublicKeyToken dans votre nom d'assembly ne semble pas correct. Cela semble trop court

+0

J'ai édité mon jeton de clé publique pour le rendre beaucoup plus petit. J'étais trop paranoïaque à propos de la sécurité. –

+0

Je devrais indiquer que j'ai édité la clef publique quand je posais la question. –

1

Utilisez-vous la fonction pour enregistrer le gestionnaire d'événements? Avez-vous activé cette fonctionnalité?

Ou peut-être vous pouvez simplement utiliser SharePoint Manager pour enregistrer votre récepteur d'événements

+0

J'ai utilisé une application de console pour enregistrer le gestionnaire d'événements en utilisant le code que vous voyez dans le deuxième extrait de ma question. –

Questions connexes