Partager via


Services WCF dans SharePoint Foundation 2010

Dernière modification : mardi 8 mars 2011

S’applique à : SharePoint Foundation 2010

La nouvelle interface REST et le nouveau modèle objet client dans Microsoft SharePoint Foundation 2010 donnent accès à seulement une partie des fonctionnalités courantes des sites Web SharePoint Foundation. Si vous développez une application personnalisée pour Microsoft SharePoint Server 2010, il existe peut-être un service Web WCF (Windows Communication Foundation) par défaut qui expose les fonctionnalités spécifiques dont vous avez besoin. Toutefois, si aucun service Web ne fournit l’accès dont vous avez besoin, vous pouvez créer un service Web personnalisé qui utilise le modèle objet serveur pour accéder aux données. SharePoint Foundation 2010 prend en charge la création de services Web personnalisés Microsoft ASP.NET et WCF, qui permettent de développer des services Web de style SOAP ou reposant entièrement sur l’interface RESTful.

Les services Web ASP.NET personnalisés que vous avez créés pour SharePoint Foundation continuent de fonctionner dans SharePoint Foundation 2010 sans nécessiter de modification, mais dorénavant, il est recommandé de créer à la place des services Web WCF personnalisés. Bien qu’un service Web ASP.NET présente des contraintes de configuration plus simples, un service WCF fournit des liaisons plus souples et plus puissantes, qui sont importantes pour les applications avancées. En hébergeant votre service Web WCF dans SharePoint Foundation, vous pouvez réduire les contraintes de configuration. Si vous avez créé un service Web WCF personnalisé pour la version antérieure, vous avez probablement dû recourir à des solutions de contournement pour le faire fonctionner et hébergé le service dans une application Web distincte. Dans SharePoint Foundation 2010, aucune solution de contournement n’est nécessaire, car les services WCF sont pris en charge par défaut.

Vous développez un service Web ASP.NET personnalisé de la même manière que dans la version antérieure. Comme indiqué dans Procédure pas à pas : création d’un service Web ASP.NET personnalisé, vous déployez le service Web ASP.NET personnalisé dans SharePoint Foundation et vous ajoutez des fichiers .wsdl et .disco pour que le schéma de votre service Web soit détectable par Microsoft Visual Studio. Un service Web WCF peut être plus complexe, car son architecture vous oblige à spécifier une configuration complète des points de terminaison de service WCF. Ces informations de configuration comprennent les adresses des points de terminaison, un contrat de service et une configuration de liaison, qui contient des informations spécifiques sur l’environnement dans lequel le service Web opère. Toutefois, le développeur SharePoint Foundation ne possède généralement aucune information sur l’environnement dans lequel le service Web est appelé à fonctionner ; l’administrateur de batterie détermine la configuration des applications Web et déploie les services Web. L’administrateur peut opérer un choix parmi plusieurs schémas d’authentification pris en charge par SharePoint Foundation ou peut activer plusieurs schémas d’authentification et affecter plusieurs adresses à l’application Web Microsoft Internet Information Services (IIS). Dans ces cas, un service WCF requiert un point de terminaison distinct pour chaque schéma d’authentification et adresse. Étant donné que ce type d’informations de configuration ne peut pas être fourni sous une forme statique, un fichier de configuration web.config ne peut pas être utilisé. La solution est une configuration dynamique, ou en termes WCF, une configuration par programme.

Configuration dynamique WCF

La configuration dynamique WCF dans SharePoint Foundation se présente sous la forme d’une fabrique de service personnalisée. Lorsque vous développez votre service WCF, vous devez spécifier la fabrique de service fournie par SharePoint Foundation, et après l’avoir spécifiée, vous n’avez plus besoin des entrées de configuration dans web.config. Au moment de l’exécution, la fabrique de service SharePoint Foundation configure automatiquement les points de terminaison appropriés pour votre service. Vous pouvez également indiquer à la fabrique de service SharePoint Foundation de créer automatiquement un point de terminaison d’échange de métadonnées pour votre service personnalisé en utilisant un attribut spécialisé sur votre classe de service. Lorsque la fabrique de service SharePoint Foundation détecte cet attribut sur la classe de service, elle crée automatiquement un point de terminaison d’échange de métadonnées pour votre service. La dernière étape du développement d’un service Web WCF consiste à déployer celui-ci dans le dossier %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\ISAPI ou dans une application Web.

Le tableau suivant répertorie les types de service et les fabriques fournis par SharePoint Foundation.

Type de service

Fabrique de service

Description

Service SOAP

MultipleBaseAddressBasicHttpBindingServiceHostFactory

La liaison HTTP de base doit être utilisée, qui détermine les points de terminaison créés pour un service.

Service REST

MultipleBaseAddressWebServiceHostFactory

La fabrique de service crée les points de terminaison avec des liaisons Web.

Service de données ADO.NET

MultipleBaseAddressDataServiceHostFactory

Une fabrique d’hôte de service de données peut être utilisée.

Vous pouvez appliquer les attributs suivants à une classe de service afin d’en définir le comportement :

  • [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] : pour une compatibilité avec ASP.NET ;

  • [BasicHttpBindingServiceMetadataExchangeEndpoint] : pour activer un point de terminaison d’échange de métadonnées.

Utilisez la propriété WcfServiceSettings de SPWebService pour spécifier la classe de configuration en vue de la personnalisation des paramètres du point de terminaison généré par la fabrique de service SharePoint Foundation. Si les possibilités offertes par cette classe de configuration ne sont pas suffisantes par rapport à vos besoins, vous pouvez également développer votre propre fabrique de service personnalisée destinée à créer dynamiquement des points de terminaison pour votre service Web.

Configuration du service WCF

Un service WCF qui est hébergé dans SharePoint Foundation et qui utilise la configuration dynamique dépend de la fabrique de service SharePoint Foundation pour la configuration de ses points de terminaison. Au démarrage, la fabrique de service lit les informations de configuration dans IIS et crée des points de terminaison appropriés pour chaque schéma d’authentification et adresse spécifiés pour l’application disponible. Toutefois, WCF requiert une adresse unique pour chaque point de terminaison. Si plusieurs schémas d’authentification sont activés pour une application Web, plusieurs points de terminaison sont mappés sur la même adresse. Pour résoudre ce problème, SharePoint Foundation crée une adresse unique pour chaque schéma d’authentification. L’adresse est la concaténation de l’URL de base du service et du nom du schéma d’authentification, par exemple :

  • https://server/_vti_bin/Service.svc/negotiate

  • https://server/_vti_bin/Service.svc/ntlm

  • https://server/_vti_bin/Service.svc/anonymous

Lorsque vous ajoutez une référence de service pour un service Web WCF personnalisé dans une application, vous n’avez pas besoin de spécifier le suffixe d’authentification, mais vous pouvez accéder au service Web par le biais de son URL d’origine (par exemple, https://server/_vti_bin/Service.svc). Cela est possible en raison du module HTTP, élément standard de l’infrastructure SharePoint Foundation qui prétraite toutes les demandes gérées par SharePoint Foundation. Le module HTTP reconnaît la convention de configuration de service WCF et, lorsqu’une demande parvient à un service WCF qui utilise la configuration dynamique, le module redirige la demande vers le point de terminaison approprié, en fonction de l’authentification de la demande. Ce schéma de redirection fonctionne de façon transparente pour les applications clientes, du point de vue desquelles un seul service WCF situé au niveau du nom d’origine est accessible par le biais de plusieurs schémas d’authentification.

Voir aussi

Concepts

Création d’un service WCF personnalisé dans SharePoint Foundation

Autres ressources

Windows Communication Foundation

Configuring Windows Communication Foundation Services