Déboguer et dépanner un récepteur d'événement distant dans un complément pour SharePoint
Configurer le débogage d’un site de test SharePoint distant
Remarque
Les procédures décrites dans cette section s’appliquent uniquement quand votre site de test SharePoint se trouve sur un ordinateur différent de Visual Studio ou quand vous utilisez un site du développeur SharePoint Online comme site de test. Si SharePoint et Visual Studio se trouvent sur le même ordinateur, ignorez cette section.
Dans Visual Studio, quand un projet de complément SharePoint comprend un récepteur d’événements distant ou un récepteur d’événements de compléments, vous devez configurer les propriétés du projet pour pouvoir déboguer le complément avec la touche F5. Mais avant cela, vous devez configurer Azure. Vous n’avez pas besoin de reconfigurer Azure pour chaque projet comportant un récepteur d’événements distants ou de compléments. (Si le complément comprend un gestionnaire d’événements AppInstalled, le complément n’est même pas exécuté avec F5 ou Ctrl+F5 [sans débogage], sauf si vous suivez les étapes de configuration indiquées dans cette section.)
Configurer Azure
Si ce n’est pas déjà fait, abonnez-vous à Microsoft Azure. Un abonnement Azure est offert si vous souscrivez à un abonnement MSDN.
Suivez les instructions fournies dans l’article Créer un espace de noms Service Bus à l’aide du Portail Azure.
Configurer un projet de SharePoint Add-in dans Visual Studio
Vous devez disposer de la dernière version des outils de développement Office pour Visual Studio. Par conséquent, exécutez le programme d’installation WebPI ici ou le programme d’installation des outils de développement Office pour Visual Studio 2015.
Une fois que vous avez ajouté un gestionnaire d’événements de compléments ou un récepteur d’événements distants à un projet de complément SharePoint dans Visual Studio, cliquez avec le bouton droit sur le projet dans l’Explorateur de solutions et sélectionnez Propriétés.
Dans le volet de propriétés, ouvrez l'onglet SharePoint et faites défiler jusqu'en bas.
Cochez la case pour Activer le débogage via Microsoft Azure Service Bus.
Entrez la chaîne de connexion complète dans la zone de texte fournie. Vous obtenez la chaîne en procédant comme décrit ci-après.
Connectez-vous au portail Azure et ouvrez l’onglet Service Bus.
Ouvrez l’espace de noms créé pour le débogage du récepteur d’événements distants et accédez aux chaînes de connexion. L’interface utilisateur du portail Azure change fréquemment. Si vous ne trouvez pas les chaînes de connexion, consultez l’Aide du portail Azure.
Copiez la chaîne de connexion SAS. Il s'agit de la chaîne que vous entrez dans les propriétés de projet Visual Studio.
À l'avenir, lorsque vous créerez des projets de Complément SharePoint dans Visual Studio, ces informations seront préremplies, vous n'aurez donc pas à ouvrir le portail Azure à chaque fois.
Tester la configuration
Utilisez les procédures dans cette section pour vérifier que vous pouvez déboguer un RER.
Pour créer un projet de récepteur d'événements distants
Dans Visual Studio, créez un complément SharePoint hébergé par un fournisseur. Consultez l’article Commencer à créer des compléments hébergés par un fournisseur pour SharePoint.
Dans l’Explorateur de solutions, sélectionnez le nœud du projet de complément.
Dans la barre de menus, sélectionnez Project>Ajouter un nouvel élément.
Dans le volet Modèles, sélectionnez le modèle Liste, puis Ajouter.
Sélectionnez Terminer pour ajouter une liste personnalisée par défaut au projet de complément.
Ajoutez un autre élément au projet de complément en sélectionnant le modèle récepteur d’événements distant dans le volet Modèles.
Dans la zone Nom, conservez le nom par défaut (RemoteEventReceiver1), puis sélectionnez Ajouter.
Dans la liste Quel type de récepteur d’événements voulez-vous ?, sélectionnez Liste des événements d’élément. Conservez la source d'événements List1, qui est la liste que vous avez ajoutée lors des étapes précédentes.
Dans la liste Gérer les événements suivants, sélectionnez Un élément est en cours d’ajout, puis Terminer.
Un service web est ajouté à l’application web pour gérer l’événement distant spécifié. Un récepteur d’événements distants est ajouté au complément SharePoint. Le récepteur fait référence au service web et à l’événement d’élément de liste dans le fichier Elements.xml du récepteur d’événements.
Dans le projet de complément, ouvrez AppManifest.xml.
Remplacez la page de démarrage par la page de la liste : AddInProjectName/Lists/List1.
Remplacez AddInProjectName par le nom de votre projet de complément (par exemple,
SharePointAddIn4/Lists/List1
). Pour cet exemple, la page de démarrage correspond à la page de la liste. Toutefois, dans un complément classique, vous souhaiterez probablement pointer sur votre propre interface utilisateur sur la page web du projet.
Exécuter et tester le débogage de gestionnaire d’événements
Si vous ne l'avez pas encore fait, effectuez la procédure intitulée Pour configurer le projet de complément SharePoint dans Visual Studio décrite ci-dessus.
Dans le projet web, ouvrez le service de récepteur d’événements distants (RemoteEventReceiver1.svc), puis ajoutez un point d’arrêt dans une ligne de code de la méthode
ProcessEvent()
.Sélectionnez la touche F5 pour exécuter le projet.
Sélectionnez le bouton + Nouvel élément pour ajouter un élément à la liste.
Attribuez un titre à l’élément, puis sélectionnez Enregistrer. Le point d’arrêt que vous avez ajouté au récepteur d’événements à distance est atteint, vérifiez que vous déboguez le récepteur d’événements à distance.
Sélectionnez la touche F5 pour continuer à exécuter le projet, puis arrêtez le débogage une fois que vous avez terminé.
Activer/désactiver la notification de Visual Studio de configuration du débogage d’événements
Si votre projet contient un événement distant et que vous n’avez pas configuré le débogage d’événements distants, Visual Studio vous invite à le configurer (voir la figure ci-dessous). Vous pouvez modifier ce comportement en désélectionnant la case M’avertir si le débogage d’événements distants n’est pas configuré dans l’onglet SharePoint.
Notification de débogage d’événements distants
Vérifier que votre service est hébergé dans le bus de service
Après avoir sélectionné F5 et approuvé le complément, accédez à l’espace de noms Service Bus dans votre navigateur (par exemple, http://mynamespace.servicebus.windows.net
). Votre point de terminaison doit apparaître dans la liste sous forme de nombre. La figure ci-dessous montre l’apparence de la page quand un espace de noms n’est pas répertorié (c’est-à-dire avant que vous sélectionniez F5).
Accès à l’espace de noms Service Bus
RER n’atteint pas le point d’arrêt
L'événement à distance peut être synchrone ou asynchrone. S’il est asynchrone, il lui faudra peut-être quelques secondes ou plus pour atteindre votre point d’arrêt.
Erreur : « il n’y a aucun point de terminaison à l’écoute »
Vous obtenez l’erreur suivante lors de l’exécution de votre gestionnaire en production :
« Désolé... Le callout de récepteur d’événement distant a échoué. Détails : aucun point de terminaison à https://{domain}:nnnnn/{path}/AppEventReceiver.svc
l’écoute ne pouvait accepter le message. Cela est souvent dû à une adresse ou une action SOAP incorrecte. » (où nnnnn est un port).
SharePoint exige qu'il n'y ait aucun port explicite dans l'URL du gestionnaire en production. Cela signifie que vous devez utiliser soit le port 443 pour HTTPS (recommandé) soit le port 80 pour HTTP.
Erreur : « Impossible d’établir la relation d’approbation pour le canal sécurisé SSL/TLS avec autorité »
Vous obtenez l’erreur suivante lors de l’exécution de votre gestionnaire en production :
« Désolé... Le callout de récepteur d’événement distant a échoué. Détails : Impossible d’établir une relation d’approbation pour le canal sécurisé SSL/TLS avec autorité. »
Quand le complément est dans SharePoint Online, alors que le service de récepteur d’événements distants se trouve dans l’environnement local et utilise HTTPS, comme nous le recommandons, le serveur hébergeant le récepteur ne peut pas utiliser un certificat auto-signé en phase de production. Le serveur doit posséder un certificat accepté publiquement par une autorité de certification. Si le complément se trouve sur une batterie de serveurs SharePoint locale, les certificats auto-signés sont acceptables.