none
[WSS] Debugger Event Handler RRS feed

  • Question

  • Bonjour a tous,

    Voila j'ai développer un event handler et il me faudrait maintenant pouvoir le debugger seulement je n'arrive pas a attacher mon evenement a mon processu IIS...

    J'ai vue dans un tuto qu'il faudrait utiliser ce code:

    //Permet de lier la bonne version de l'evenement a la feature
                public override void FeatureActivated(SPFeatureReceiverProperties properties)
                {
                    //throw new Exception("The method or operation is not implemented.");
                    SPSite Site = new SPSite(SPContext.Current.Site);
                    SPWeb Web = Site.OpenWeb();
                    string AssemblySignature = "EventHandler4Feature, Version=1.0.0.0, Culture=neutral, PublicKeyToken=551771f1cee93711";
                    string ClassName = "EventHandler4Feature.EventHandler4DocLib";
                    Web.Lists["CommonLib"].EventReceivers.Add(SPEventReceiverType.ItemAdded, AssemblySignature, ClassName);
                    Web.Lists["CommonLib"].EventReceivers.Add(SPEventReceiverType.ItemUpdated, AssemblySignature, ClassName);
                    Web.Lists["CommonLib"].EventReceivers.Add(SPEventReceiverType.ItemDeleted, AssemblySignature, ClassName);
    
                }

    Seulement je ne sais pas trop ou placer celui-ci pour que la fonction se lance...

    Ca fait un moment que je suis dessus et un peu d'aide m'aiderais énnormément...

    Merci

    vendredi 26 mars 2010 14:58

Réponses

  • Bonjour,

    cette méthode correspond au code qui peut être executé au moment de l'activation d'une feature. Pour qu'il le soit, vous devez associer la classe contenant cette méthode à votre feature. Cette association se fait au niveau du fichier feature.xml de la feature en question.

    exemple :

    <Feature 
        Id="beb48f0a-9c42-40b9-a4b5-9d01d23106a8" 
        Title="InstallContent" 
        Scope="Site" 
        Version="1.0.0.0" 
        Hidden="FALSE" 
        DefaultResourceFile="core" 
        xmlns="http://schemas.microsoft.com/sharepoint/" 
        ReceiverAssembly="FeatureDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9f4da00116c38ec5" 
        ReceiverClass="FeatureDemo.MyFeatureReceiver" 
        > 
      <ElementManifests> 
        <ElementManifest Location="InstallContent\elements.xml" /> 
      </ElementManifests> 
    </Feature> 

    Une fois la feature redéployée, la méthode FeatureActivated de la classe MyFeatureReceiver devrait s'executer au moment de l'activation de la feature.

    Maintenant, comment débugger pour s'en assurer :

    - Dans Visual Studio, cliquez sur le menu "Debug", "Attach to Process...".
    - Cochez les cases "Show processes from all users" et "Show processes in all sessions"
    - Sélectionnez les processus appellés w3wp.exe (correspond au processus IIS)
    - Vérifier que le champ "Attach To" est bien sur Managed (v2.0, v1.1, v1.0) code
    - Validez, Visual Studio est maintenant attaché au processus IIS.

    - Mettez un point d'arret dans la méthode FeatureActivated
    - Activez la feature sur un site
    - En principe, Visual Studio s'arrete sur le point d'arret

    Est-ce que cela répond à votre question ?


    http://blogs.developpeur.org/anouvel
    Merci de valider les réponses qui correspondent à votre problème afin qu'il apparaisse comme résolu.
    • Proposé comme réponse Arnault Nouvel dimanche 28 mars 2010 09:19
    • Marqué comme réponse Dieudonné mardi 30 mars 2010 08:10
    dimanche 28 mars 2010 09:19

Toutes les réponses

  • Bonjour,

    cette méthode correspond au code qui peut être executé au moment de l'activation d'une feature. Pour qu'il le soit, vous devez associer la classe contenant cette méthode à votre feature. Cette association se fait au niveau du fichier feature.xml de la feature en question.

    exemple :

    <Feature 
        Id="beb48f0a-9c42-40b9-a4b5-9d01d23106a8" 
        Title="InstallContent" 
        Scope="Site" 
        Version="1.0.0.0" 
        Hidden="FALSE" 
        DefaultResourceFile="core" 
        xmlns="http://schemas.microsoft.com/sharepoint/" 
        ReceiverAssembly="FeatureDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9f4da00116c38ec5" 
        ReceiverClass="FeatureDemo.MyFeatureReceiver" 
        > 
      <ElementManifests> 
        <ElementManifest Location="InstallContent\elements.xml" /> 
      </ElementManifests> 
    </Feature> 

    Une fois la feature redéployée, la méthode FeatureActivated de la classe MyFeatureReceiver devrait s'executer au moment de l'activation de la feature.

    Maintenant, comment débugger pour s'en assurer :

    - Dans Visual Studio, cliquez sur le menu "Debug", "Attach to Process...".
    - Cochez les cases "Show processes from all users" et "Show processes in all sessions"
    - Sélectionnez les processus appellés w3wp.exe (correspond au processus IIS)
    - Vérifier que le champ "Attach To" est bien sur Managed (v2.0, v1.1, v1.0) code
    - Validez, Visual Studio est maintenant attaché au processus IIS.

    - Mettez un point d'arret dans la méthode FeatureActivated
    - Activez la feature sur un site
    - En principe, Visual Studio s'arrete sur le point d'arret

    Est-ce que cela répond à votre question ?


    http://blogs.developpeur.org/anouvel
    Merci de valider les réponses qui correspondent à votre problème afin qu'il apparaisse comme résolu.
    • Proposé comme réponse Arnault Nouvel dimanche 28 mars 2010 09:19
    • Marqué comme réponse Dieudonné mardi 30 mars 2010 08:10
    dimanche 28 mars 2010 09:19
  • Merci pour cette aide.

    J'avais effectivement ecris ma methode dans une classe autre que celle renseignée dans mon fichier "Feature.xml".

    Le probleme est donc résolu :)

    mardi 30 mars 2010 08:11