Basiquement SharePoint expose une grande partie de ses fonctionnalités via des Web Services standards que l’on retrouve sur la MSDN :
Mais dans le cadre d’un développement fait autour de cette plateforme SharePoint, il peut arriver que l’on ait à ajouter à ces Web Services SharePoint un Web Service additionnel (comme dans cet exemple de Janne Mattila).
Lors de ce développement, il faut bien sur respecter les règles de base pour les Web Services en validant un ensemble de points qui sont tous listés :
Mais dans un cas précis ou ce Web Service doit être accessible pour toutes les Web Applications, nous devons placer les composants de ce Web Service comme suit :
- Fichiers DLL stockés dans le GAC
- Fichiers ASMX stockés dans le répertoire techniques de Web Services de SharePoint :
- C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12\ISAPI\
- Répertoire qui correspond a l’URL : http://xxxxxx/_vti_bin/
Dans ce cas, si on conserve la déclaration standard de la classe dans le fichier ASMX, on se retrouve avec le message d’erreur suivant :
Could not create type ‘xxxx.xxxx.xxx’.
Cela ne provient pas du code (si les règles plus haut sont respectées) mais bien du mapping entre notre fichier ASMX et de la DLL du GAC. Il faut donc modifier ce fichier ASMX pour ajouter la référence à cette ASSEMBLY.
La solution est donc de modifier le fichier comme suit :
<%@ WebService Class="Nom.Fort.DLL.Class" %>
<%@ Assembly Name="Nom.Fort.DLL., Version=1.0.0.0, Culture=neutral, PublicKeyToken=7686e15692492ea2" %>
Une fois ce fichier modifié, il faut effectuer un petit IISRESET et vous aurez la chance de retrouver les différentes méthodes de votre Web Services.
Je remercie Laurent Kempé de Tech Head Brothers pour son aide sur cette modification.
Romelard Fabrice [MVP]
Commentaires
Enregistrer un commentaire