Vue d’ensemble de WCF et de l’interface PSI (traduction automatique)

Dernière modification : vendredi 14 mai 2010

S’applique à : Office 2010 | Project 2010 | Project Server 2010 | SharePoint Server 2010

Dans cet article
Vue d'ensemble de WCF
Migration et compatibilité des Solutions personnalisées

Important

Cet article a été traduit automatiquement, voir l’avertissement. Vous pouvez consulter la version en anglais de cet article ici.

L’interface PSI (Project Server Interface) de Microsoft Project Server 2010 comprend une interface de service Web ASMX et une interface de service pour WCF (Windows Communication Foundation). Pour les services PSI publics, le modèle objet du service Web ASMX et le modèle objet pour le service WCF sont identiques. L’architecture orientée service de l’interface WCF fournit des performances, une sécurité et une évolutivité améliorées. Les applications personnalisées utilisant l’interface PSI peuvent utiliser l’une ou l’autre interface.

Le présent article contient les sections suivantes :

  • Vue d'ensemble de WCF

    • Services de la PSI

    • En utilisant le ASMX et les Interfaces WCF

  • Migration et compatibilité des Solutions personnalisées

Important

La technologie sous-jacente pour les communications réseau est basée sur WCF dans Project Server 2010, pour permettre l'utilisation de références de service (fichiers .svc) et une large gamme d'améliorations. Références de service Web ASMX sont également basés sur l'architecture WCF et n'utilisent pas les fichiers .asmx. Définition d'une référence à un service Web de la PSI dans Project Server 2010 nécessite l'ajout de l'option URL ?wsdl au chemin d'accès, par exemple, https://ServerName/ProjectServerName/_vti_bin/PSI/Resource.asmx?wsdl.

Procédures générales à utiliser dans le développement de l'interface WCF, y compris les procédures de définition de service fait référence, la création d'un fichier de configuration de service, ainsient que des conseils pour l'utilisation de descriptions Intellisense pour la PSI, consultez Conditions préalables pour les exemples de code basés sur WCF (traduction automatique). Pour obtenir des procédures générales à utiliser avec l'interface ASMX, voir Conditions préalables pour les exemples de code basés sur ASMX (traduction automatique).

Vue d'ensemble de WCF

WCF est une plate-forme de messagerie distribuée qui a été publiée avec Windows Presentation Foundation (WPF) et Windows Workflow Foundation (WF) de Microsoft.NET Framework 3.0. WCF utilise WSDL et SOAP pour tous les types de services par défaut ; Il peut être configuré ou étendu pour utiliser d'autres formats de message et les mécanismes de découverte, tels que XML simple à l'aide de RSS. WCF peut fonctionner sur une variété de protocoles de communication, y compris HTTP, TCP, canaux nommés, MSMQ et des protocoles personnalisés. Un service WCF peut être exposé et consommé sur plusieurs protocoles sans recompiler. Par défaut, les services WCF dans Project Server 2010 utilisent SOAP sur HTTP (ou HTTPS) et sont hébergés dans Microsoft Internet Information Services (IIS).

WCF unifie plusieurs technologies informatiques distribués Microsoft (ASMX.NET Framework remoting, Enterprise Services, WSE et MSMQ) et peut également interagir avec d'autres plates-formes de service Web et les technologies de messagerie. En raison de son interopérabilité très large, il existe de nombreuses fonctionnalités de WCF pour en savoir plus. WCF peut être configuré par programmation ou en utilisant les fichiers XML app.config ou web.config.

À l'aide de WCF avec la PSI dans Project Server 2010 est similaire à l'utilisation de ASMX pour les applications typiques, bien qu'il existe plusieurs paramètres de configuration pour les points de terminaison WCF. Un point de terminaison WCF inclut un URI et une liaison qui spécifie la sécurité, protocole, codage des messages et des délais d'attente.

Pour plus d'informations sur WCF, consultez Windows Communication Foundation et Beginner's Guide to Windows Communication Foundation.

Services de la PSI

Les signatures de méthode, les membres et les classes dans l'interface ASMX et l'interface WCF sont identiques. Le tableau 1 présente les services de la PSI. Bien que la colonne ASMX indique que le service ayant une extension .asmx, l'URL réelle doit inclure l'option URL ?wsdl, par exemple, Admin.asmx?wsdl.

Tableau 1. Services de la PSI

.asmx

WCF

Publics

Local

commentaires ;

Admin.asmx

Admin.svc

X

X

 

Archive.asmx

Archive.svc

X

X

 

Authentication.asmx

 

X

À usage interne uniquement.

Calendar.asmx

Calendar.svc

X

X

 

CubeAdmin.asmx

CubeAdmin.svc

X

X

 

CustomFields.asmx

CustomFields.svc

X

X

 

Driver.asmx

Driver.svc

X

X

Nouveautés dans Project Server 2010.

Events.asmx

Events.svc

X

X

 

ExchangeSync.asmx

 

X

Nouveautés dans Project Server 2010 ; à usage interne uniquement.

LoginForms.asmx

X

 

Project Server utilise l'authentification basée sur les formulaires qu'avec ASMX. WCF utilise l'authentification des demandes de remboursement.

LoginWindows.asmx

 

X

 

Utilisé uniquement pour les applications basées sur ASMX, où Project Server 2010 utilise multi-authentication (authentification basée sur des formulaires et des créances).

LookupTable.asmx

LookupTable.svc

X

X

 

Notifications.asmx

Notifications.svc

X

X

 

ObjectLinkProvider.asmx

ObjectLinkProvider.svc

X

X

 

 

P12Upgrade.svc

 

X

Utilisé uniquement dans les mises à niveau à partir de Project Server 2007. Non documenté.

PortfolioAnalyses.asmx

PortfolioAnalyses.svc

X

X

Nouveautés dans Project Server 2010.

Project.asmx

Project.svc

X

X

 

PWA.asmx

PWA.svc

 

X

À usage interne uniquement.

QueueSystem.asmx

QueueSystem.svc

X

X

 

Resource.asmx

Resource.svc

X

X

 

ResourcePlan.asmx

ResourcePlan.svc

X

X

 

Security.asmx

Security.svc

X

X

 

Statusing.asmx

Statusing.svc

X

X

 

TimeSheet.asmx

TimeSheet.svc

X

X

 

View.asmx

View.svc

 

X

À usage interne uniquement.

WinProj.asmx

WinProj.svc

 

X

À usage interne uniquement.

Workflow.asmx

Workflow.svc

X

X

Nouveautés dans Project Server 2010.

WssInterop.asmx

WssInterop.svc

X

X

 

La PSI inclut les services Web publics 22 et cinq services Web privés. Les services Web privés sont marqués « Internal utiliser uniquement les » dans le tableau 1. Comme dans Project Server 2007, les interfaces publiques sont disponibles pour les applications externes via l'URL Project Web App. Applications externes peuvent utiliser l'interface ASMX directement. Applications externes utilisent l'interface WCF via le service frontal de ProjectServer.svc dans Project Web App, qui agit comme un routeur pour les services de Project Server back-end. Pour obtenir une brève description de chaque service PSI, consultez Vue d’ensemble de la référence de l’interface PSI (traduction automatique).

En utilisant le ASMX et les Interfaces WCF

Interface ASMX :   L'interface ASMX peut être utilisé que par le biais d'une URL de front-end (Project Web App). L'URL de l'interface publique de ASMX du service Web des ressources, par exemple, est https://ServerName/ProjectServerName/_vti_bin/PSI/Resource.asmx?wsdl. Cette URL affiche le contrat de service XML pour le service Web de ressources (Figure 1).

Les fichiers d'interface ASMX sont contenus dans le répertoire [ProgramFiles]\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI\PSI sur l'ordinateur de Project Server. Contrairement pour dans Project Server 2007, l'interface ASMX dans Project Server 2010 utilise l'infrastructure WCF sous-jacent et le n'est pas accessible par le biais de fichiers .asmx. Au lieu de cela, l'interface ASMX pour chaque service PSI comprend deux fichiers .aspx : le fichier de découverte (Servicedisco.aspx) définit la liaison SOAP pour la demande de service et la réponse et le fichier WSDL (Servicewsdl.aspx) fournit le schéma pour le service. Par exemple, l'accès au service des ressources ASMX utilise les fichiers Resourcedisco.aspx et Resourcewsdl.aspx.

La figure 1. Ajout d'une référence de service Web ASMX avec l'option WSDL

Ajout d’une référence ASMX avec l’option WSDL

Interface WCF :   L'interface WCF inclut les fichiers .svc dans le répertoire [Program Files]\Microsoft Office Servers\14.0\WebServices\Shared\ProjectServer\PSI. L'URL de l'interface WCF du service, projet de la PSI, par exemple, est https://ServerName:32843/[GUID]/PSI/Project.svc. Le GUID est le nom du répertoire virtuel de Service de Project Server dans l'application Web de SharePoint Services. L'interface WCF peut être utilisée pour les applications locales et distantes via un assembly de proxy ou les fichiers source du proxy. Les applications et composants conçus pour s'exécuter sur le serveur doivent utiliser l'interface WCF.

Vous trouverez le nom du répertoire virtuel de l'application de Service de Project Server par l'Administration centrale de SharePoint. Dans la page Gérer les Applications de Service, cliquez sur l'instance d'Application de Service de Project Server. L'option URL de la page Gérer les Sites de projet Web App contient le GUID du nom du répertoire. Par exemple, dans https://ServerName:38312/_admin/managepwa.aspx?appid=c476f85e-5c61-4de9-91e3-45e5127e20dc, le répertoire d'application de Service de Project Server est c476f85e5c614de991e345e5127e20dc (sans les tirets).

Conseil

Pour trouver rapidement le GUID de l'application de service de Project Server, utilisez une commande Windows PowerShell qui est installée avec SharePoint Server 2010. Dans le menu Démarrer , cliquez sur Tous les programmeset cliquez sur Produits Microsoft SharePoint 2010, Environnement de gestion SharePoint 2010. Voici la commande et les résultats dans la fenêtre de Environnement de gestion SharePoint 2010 pour les applications de service définis (vos GUID seront différents). Supprimer les tirets dans le GUID de l'application de service de Project Server.

PS > get-SPServiceApplication 
DisplayName          TypeName             Id
-----------          --------             --
Secure Store Service Secure Store Serv... e23c707b-f94d-4079-86a3-4ee99ed88c60
State Service        State Service        9f15ce66-95a5-4a13-86c5-9df7fd1fb3de
Project Server Se... Project Server PS... c476f85e-5c61-4de9-91e3-45e5127e20dc
PerformancePoint ... PerformancePoint ... b85e01e9-d414-4126-92d5-ee36dfc69668
Excel Services Ap... Excel Services Ap... 8c40adc1-36bf-45e5-984b-39d547256c74
Security Token Se... Security Token Se... 3b19014f-1f5d-4e46-8c6f-2ddb42e89544
Application Disco... Application Disco... a585e505-e56e-4e2f-be70-37859c83ff3e
WSS_UsageApplication Usage and Health ... 0d938d1c-6761-4848-afe4-b5567d4d4f7e
Search Administra... Search Administra... 999b518e-69f8-429a-9766-985aa7d75d1b
SharePoint Server... SharePoint Server... f268bbc9-4afd-43f2-ad27-082ef52e9955
Search Service Ap... Search Service Ap... 9d4ef748-90a1-4207-add6-5b232fcaf7b4

Si vous connaissez le nom complet de l'application de service de Project Server, vous pouvez l'utiliser pour obtenir la valeur GUID, par exemple :

PS > $projectService = "Project Server Service Application"
PS > (Get-SPServiceApplication | where { $_.Name -eq $projectService }).Id

Guid
----
c476f85e-5c61-4de9-91e3-45e5127e20dc

Le nom de répertoire virtuel d'application Service Project Server dans l'exemple est c476f85e5c614de991e345e5127e20dc (sans les tirets), afin que l'URL de back-end du service de projet est https://ServerName:32843/c476f85e5c614de991e345e5127e20dc/PSI/Project.svc. Toutefois, l'URL de back-end d'un service de Project Server n'est pas directement utilisable en raison de l'authentification basée sur les créances et les liaisons WCF personnalisés dans l'application Web de SharePoint Services. Pour cette raison, l'accès aux services WCF doit être à travers le routeur ProjectServer.svc frontaux dans Project Web App. Pour plus d'informations sur les liaisons personnalisées, consultez Procédure : Créer un assembly de proxy pour des services WCF (traduction automatique).

Chaque fichier .svc contient une référence à la mise en oeuvre de WCF pour Project Server. Par exemple, le fichier Project.svc pour le service de projet présente le contenu suivant.

<%@ ServiceHost=""
Language="C#"
Service="Microsoft.Office.Project.Server.Wcf.Implementation.ProjectImpl,
  Microsoft.Office.Project.Server.Communications.Internal, 
  Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c"
Factory="Microsoft.Office.Project.Server.Administration.PsiServiceHostFactory,
  Microsoft.Office.Project.Server.Administration,
  Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c"
%>

L'aide du routeur ProjectServer.svc :   Le Project Web App frontal inclut un service WCF, ProjectServer.svc, qui sert de routeur pour tous les services de Project Server sont disponibles dans l'application Web de SharePoint Services. Applications externes n'appellent pas ProjectServer.svc directement, mais définir comme un point de terminaison pour le proxy des services PSI.

Notes

Dans Project Server 2010, le serveur de projet de service pour Project Web App ([Program Files]\Common Files\Microsoft Shared\Web Server Extensions\14\isapi\PSI\ProjectServer.svc) agit uniquement comme un routeur pour l'accès externe aux services PSI sur l'ordinateur qui exécute Project Server. En conséquence, ProjectServer.svc est désactivé pour la publication des métadonnées. Si vous essayez d'afficher les https://ServerName/ProjectServerName/_vti_bin/psi/ProjectServer.svc dans Internet Explorer, vous obtenez une erreur : Impossible de trouver la page Web. Ce comportement est normal et que vous ne devriez pas activer la publication des métadonnées pour ProjectServer.svc.

Figure 2 montre l'emplacement de toutes les interfaces WCF Services PSI, dans la boîte de dialogue Gestionnaire des services Internet (IIS) dans Windows Server 2008. Dans cet exemple, l'URL Project Web App est https://server/pwa dans le site Sharepoint-80 et, tout comme dans Project Server 2007, il a un sous-répertoire _vti_bin/PSI.

La figure 2. Emplacement dans le Gestionnaire des services PSI

emplacement des services Web PSI dans le Gestionnaire des services Internet

Dans SharePoint Server 2010, les applications de service sont installées dans l'application Services Web SharePoint . Vous pouvez utiliser le Gestionnaire des services Internet pour rechercher les liaisons de transport du site. Les liaisons par défaut sont les ports 32843 pour HTTP et 32844 pour HTTPS. Le nom du répertoire virtuel des services Project Server est un GUID. L'URI générales pour l'interface WCF du service des ressources n'est donc https://ServerName:32843/[GUID]/PSI/Resource.svc. Dans Microsoft Internet Explorer, vous ne pouvez pas accéder directement à du contrat de service WCF, sauf si vous modifiez temporairement le fichier web.config dans le répertoire PSI.

Notes

Lorsque vous essayez de définir une référence à un service WCF dans Visual Studio, par exemple, https://ServerName:32843/1712e91aeb884cdfb437299b89de3443/psi/Resource.svc, vous obtenez une erreur de System.InvalidOperationException.

Pour définir une référence de service directement dans Visual Studio, vous devez modifiez temporairement le fichier web.config des services Project Server back-end, dans C:\Program Files\Microsoft Office Servers\14.0\WebServices\Shared\ProjectServer\PSI. Pour obtenir des instructions, consultez Procédure : Créer un assembly de proxy pour des services WCF (traduction automatique).

Voici l'erreur lorsque vous tentez de définir une référence de service, si vous ne modifiez pas le fichier web.config pour les services de Project Server back-end.

The service encountered an error. 
An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is: 
System.InvalidOperationException: An exception was thrown in a call to a policy export extension. 
Extension: System.ServiceModel.Channels.TransportSecurityBindingElement
Error: Security policy export failed.

Pour utiliser le ProjectServer.svc frontal pour acheminer les appels à l'interface WCF de la PSI dans vos applications, vous devez effectuer les opérations suivantes :

  1. Ajouter des références pour les services PSI dont vous avez besoin. Comme indiqué dans Conditions préalables pour les exemples de code basés sur WCF (traduction automatique), il existe trois façons d'ajouter une référence de service. Nous

    • Définir une référence à l'assembly de proxy ProjectServerServices.dll PSI.

    • Ajoutez le fichier de sortie de SvcUtil.exe de la référence WCF pour la solution Visual Studio.

    • Ajoutez une référence de service à l'aide de Visual Studio.

    Au lieu de définir directement une référence de service, nous vous recommandons de définir une référence à l'assembly de proxy ProjectServerServices.dll ou d'ajouter un fichier de source de proxy pour votre solution Visual Studio. Les fichiers d'assembly et la source de proxy sont dans le téléchargement du Kit de développement logiciel Project 2010.

  2. Créer des points de terminaison pour les services qui pointent vers ProjectServer.svc sur le serveur frontal Project Web App. Pour plus d'informations sur la création de points de terminaison WCF pour les services de Project Server, consultez Procédure pas à pas : Développement d’applications PSI à l’aide de WCF (traduction automatique), qui montre comment créer par programme les liaisons WCF et les points de terminaison sans utiliser un fichier app.config et comment modifier un fichier app.config dans Visual Studio à l'aide de l'éditeur de Configuration du Service WCF.

Migration et compatibilité des Solutions personnalisées

Les méthodes Web publiques de la PSI qui se produisent dans Project Server 2007 et Project Server 2010 ont les mêmes signatures. Classes et membres dans les interfaces publiques ASMX et WCF de Project Server 2010 sont identiques. Toutefois, le nombre de colonnes et de la taille des tables de données utilisée ou renvoyés par les méthodes PSI peuvent différer entre Project Server 2007 et Project Server 2010. Il existe également des différences dans la base de données MOM Reporting.

Si les solutions pour Project Server 2007 utilisent l'interface ASMX via l'URL Project Web App frontaux, ils peuvent continuer à utiliser l'interface ASMX. Si les solutions de Project Server 2007 utilisent ASMX via le fournisseur de services partagés (SSP), ils doivent être modifiés pour utiliser l'interface WCF. Nous vous conseillons d'utiliser l'interface WCF lorsque cela est possible ; Il présente des avantages de l'architecture orientée services, sécurité, performances et évolutivité.

Le paramètre Mode de compatibilité dans Project Web App fait référence uniquement à la fabrication de Project Server 2010 compatible avec Project Professional 2007. Le paramètre n'a aucun effet sur les solutions tierces.

Notes

Bien que la plupart des solutions développées pour Project Server 2007 devraient également fonctionner avec Project Server 2010, nous vous recommandons de tester des solutions sur une installation hors production de Project Server 2010 avant de les déployer sur un serveur de production.

Si vous choisissez de migrer une solution de Project Server 2007 pour utiliser l'interface WCF, ou si la solution ne fonctionne pas comme prévu sur Project Server 2010, vous devez au minimum, effectuez les opérations suivantes :

  • Dressez la liste des références Web et des espaces de noms et supprimez les références Web ASMX.

  • Ajoutez l'assembly de proxy ProjectServerServices.dll WCF ou les fichiers source pour les services requis, ou ajoutez les références ASMX frontal de nouveau, en utilisant les mêmes noms d'espace de noms. Il existe plusieurs nouvelles méthodes et des groupes de données dans les services PSI dans Project Server 2010.

  • Modifier les références d'assembly à utiliser les assemblys Project Server 2010, tels que Microsoft.Office.Project.Server.Library.dll et Microsoft.Office.Project.Server.Events.Receivers.dll.

  • Compiler et tester la solution.

Vous devez utiliser Visual Studio 2008 SP1 ou version ultérieure pour mettre à jour des solutions pour utiliser l'interface WCF. La version finale de Project Server 2010 requiert Microsoft Visual Studio 2010 pour créer et déployer des flux de travail de Project Server.

Lorsque vous mettez à jour une application ou un composant, Visual Studio vous permet de définir le Framework cible sur la page de propriétés d'application vers une version spécifique de la.NET Framework. Si le framework cible.NET Framework 2.0, vous pouvez mettre à jour et ajouter de nouvelles références Web à l'aide d'ASMX. Si vous affectez le framework cible.NET Framework 3.5, vous pouvez accéder à la boîte de dialogue Ajouter une référence de Service pour les services WCF.

Important

Les solutions ou les personnalisations que vous développez avec les versions préliminaires de Project Server 2010 doivent être recompilées et peuvent nécessiter des modifications supplémentaires pour la version finale.

Notes

Avertissement traduction automatique : cet article a été traduit par un ordinateur, sans intervention humaine. Microsoft propose cette traduction automatique pour offrir aux personnes ne maîtrisant pas l’anglais l’accès au contenu relatif aux produits, services et technologies Microsoft. Comme cet article a été traduit automatiquement, il risque de contenir des erreurs de grammaire, de syntaxe ou de terminologie.

Voir aussi

Tâches

Procédure pas à pas : Développement d’applications PSI à l’aide de WCF (traduction automatique)

Procédure : Créer un assembly de proxy pour des services WCF (traduction automatique)

Procédure : Utiliser l’emprunt d’identité avec WCF (traduction automatique)

Concepts

Vue d’ensemble de la référence de l’interface PSI (traduction automatique)

Conditions préalables pour les exemples de code basés sur ASMX (traduction automatique)

Conditions préalables pour les exemples de code basés sur WCF (traduction automatique)

Autres ressources

Windows Communication Foundation

Beginner's Guide to Windows Communication Foundation