Compartir a través de


Información general sobre WCF y PSI (traducción automática)

Importante

Este artículo se ha traducido con traducción automática; vea la declinación de responsabilidades. Para su referencia, puede encontrar la versión en inglés de este artículo aquí.

Project Server Interface (PSI) en Microsoft Project Server 2010 incluye una interfaz de servicio web ASMX y una interfaz de servicio para Windows Communication Foundation (WCF). Para los servicios públicos de PSI, el modelo de objetos del servicio web ASMX y el modelo de objetos del servicio WCF son idénticos. La arquitectura orientada a servicios de la interfaz de WCF mejora la escalabilidad, la seguridad y el rendimiento. Las aplicaciones personalizadas que usan PSI pueden utilizar cualquiera de las dos interfaces.

En este artículo se incluyen las siguientes secciones:

  • Información general acerca de WCF

    • Servicios de PSI

    • Mediante el ASMX y las Interfaces WCF

  • Migración y compatibilidad de soluciones personalizadas

Importante

La tecnología subyacente de las comunicaciones de red se basa en WCF en Project Server 2010, para habilitar el uso de referencias de servicio (archivos .svc) y una amplia gama de mejoras. Las referencias de servicios Web ASMX también se basan en la arquitectura de WCF y no utilizan archivos .asmx. Establecer una referencia a un servicio Web de PSI en Project Server 2010, es necesario si se agrega la opción de la dirección URL de ?wsdl a la ruta de acceso, por ejemplo, https://ServerName/ProjectServerName/_vti_bin/PSI/Resource.asmx?wsdl.

Para los procedimientos generales utilizar en el desarrollo con la interfaz WCF, incluidos los procedimientos para establecer el servicio hace referencia a cómo crear un archivo de configuración del servicio y consejos para utilizar las descripciones de Intellisense para el PSI, consulte Requisitos previos para ejemplos de código basados en WCF (traducción automática). Para que los procedimientos generales utilizar con la interfaz ASMX, consulte Requisitos previos para ejemplos de código basados en ASMX (traducción automática).

Información general acerca de WCF

WCF es una plataforma de mensajería distribuida que se lanzó con Windows Presentation Foundation (WPF) y Windows Workflow Foundation (WF) en Microsoft.NET Framework 3.0. WCF utiliza WSDL y SOAP para todos los tipos de servicios de forma predeterminada; puede ser configurado o extender para que utilice otros formatos de mensaje y los mecanismos de descubrimiento, como XML sencillo mediante RSS. WCF puede operar en una variedad de protocolos de comunicación, incluidos HTTP, TCP, canalizaciones con nombre, MSMQ y protocolos personalizados. Un servicio WCF puede exponer y consumido a través de múltiples protocolos sin volver a compilar. De forma predeterminada, servicios WCF en Project Server 2010 utilizan SOAP sobre HTTP (o HTTPS) y se alojan en Microsoft Internet Information Services (IIS).

WCF unifica varias tecnologías de computación distribuida de Microsoft (ASMX.NET Framework remoting, Enterprise Services, WSE y MSMQ) y también puede interoperar con otras plataformas de servicios Web y las tecnologías de mensajería. Debido su interoperabilidad muy amplia, hay muchas características de WCF para obtener más información. WCF se puede configurar mediante programación o mediante los archivos XML de app.config o web.config.

El uso de WCF con PSI en Project Server 2010 es similar al uso de ASMX para aplicaciones típicas, aunque hay más opciones de configuración para que los extremos de WCF. Un extremo WCF incluye un identificador URI y un enlace que especifica la seguridad, protocolo, codificación de mensajes y los tiempos de espera.

Para obtener más información acerca de WCF, consulte Windows Communication Foundation y Beginner's Guide to Windows Communication Foundation.

Servicios de PSI

Las firmas de clases, miembros y método en la interfaz ASMX y la interfaz WCF son idénticas. Tabla 1 muestra los servicios de PSI. Aunque el servicio con la extensión .asmx muestra en la columna ASMX, la dirección URL real debe incluir la opción de dirección URL ?wsdl, por ejemplo, Admin.asmx?wsdl.

Tabla 1. Servicios de PSI

.asmx

WCF

Público

Local

Comentarios

Admin.asmx:

Admin.svc

X

X

 

Archive.asmx

Archive.svc

X

X

 

Authentication.asmx

 

X

Sólo para uso interno.

Calendar.asmx

Calendar.svc

X

X

 

CubeAdmin.asmx

CubeAdmin.svc

X

X

 

CustomFields.asmx

CustomFields.svc

X

X

 

Driver.asmx

Driver.svc

X

X

Nuevo en Project Server 2010.

Events.asmx

Events.svc

X

X

 

ExchangeSync.asmx

 

X

Nuevo en Project Server 2010; sólo para uso interno.

LoginForms.asmx

X

 

Project Server utiliza la autenticación basada en formularios sólo con ASMX. WCF utiliza la autenticación de reclamaciones.

LoginWindows.asmx

 

X

 

Utiliza sólo para las aplicaciones basadas en ASMX, donde Project Server 2010 utiliza multi-authentication (autenticación basada en formularios y reclamaciones).

LookupTable.asmx

LookupTable.svc

X

X

 

Notifications.asmx

Notifications.svc

X

X

 

ObjectLinkProvider.asmx

ObjectLinkProvider.svc

X

X

 

 

P12Upgrade.svc

 

X

Utiliza sólo en las actualizaciones desde Project Server 2007. No documentado.

PortfolioAnalyses.asmx

PortfolioAnalyses.svc

X

X

Nuevo en Project Server 2010.

Project.asmx

Project.svc

X

X

 

PWA.asmx

PWA.svc

 

X

Sólo para uso interno.

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

Sólo para uso interno.

WinProj.asmx

WinProj.svc

 

X

Sólo para uso interno.

Workflow.asmx

Workflow.svc

X

X

Nuevo en Project Server 2010.

WssInterop.asmx

WssInterop.svc

X

X

 

PSI incluye los servicios Web públicos 22 y cinco servicios Web privados. Los servicios Web privados se marcan como "Uso de la interna sólo" en la tabla 1. Como en Project Server 2007, las interfaces públicas están disponibles para las aplicaciones externas a través de la dirección URL Project Web App. Aplicaciones externas pueden utilizar la interfaz ASMX directamente. Aplicaciones externas utilizan la interfaz WCF a través del servicio de ProjectServer.svc front-end en Project Web App, que actúa como enrutador hacia los servicios de Project Server back-end. Para obtener una descripción breve de cada servicio PSI, consulte Información general sobre la referencia de PSI (traducción automática).

Mediante el ASMX y las Interfaces WCF

La interfaz ASMX:   Sólo a través de una dirección URL de front-end (Project Web App), se puede utilizar la interfaz ASMX. La dirección URL de la interfaz pública de ASMX del servicio Web de recurso, por ejemplo, es https://ServerName/ProjectServerName/_vti_bin/PSI/Resource.asmx?wsdl. Esa dirección URL muestra el contrato de servicio XML para el servicio Web de recursos (figura 1).

Los archivos de la interfaz ASMX se encuentran en el directorio [ProgramFiles]\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI\PSI en el equipo de Project Server. A diferencia de Project Server 2007, la interfaz ASMX en Project Server 2010 utiliza la infraestructura subyacente de WCF y no se tiene acceso mediante archivos .asmx. En su lugar, la interfaz ASMX para cada servicio PSI incluye dos archivos .aspx: el archivo de descubrimiento (Servicedisco.aspx) establece el enlace de SOAP para la solicitud de servicio y la respuesta y el archivo WSDL (Servicewsdl.aspx) proporciona el esquema para el servicio. Por ejemplo, el acceso ASMX para el servicio de recursos utiliza los archivos Resourcedisco.aspx y Resourcewsdl.aspx.

Figura 1. Agregar una referencia de servicio Web ASMX con la opción de WSDL

Adición de una referencia ASMX con la opción WSDL

La interfaz WCF:   La interfaz WCF incluye los archivos .svc en el directorio [Program Files]\Microsoft Office Servers\14.0\WebServices\Shared\ProjectServer\PSI. La dirección URL de la interfaz WCF del servicio de proyecto de la PSI, por ejemplo, es https://ServerName:32843/[GUID]/PSI/Project.svc. El GUID es el nombre del directorio virtual servicio Project Server en la aplicación de servicios Web de SharePoint. La interfaz WCF puede utilizarse para las aplicaciones locales y remotas a través de un ensamblado de proxy o archivos de código fuente del proxy. Aplicaciones y componentes que están diseñados para ejecutarse en el servidor deben utilizar la interfaz WCF.

Puede encontrar el nombre del directorio virtual de la aplicación de servicio de Project Server mediante Administración Central de SharePoint. En la página Administrar aplicaciones de servicio, haga clic en la instancia de la aplicación de servicio de servidor de proyecto que desee. La opción de dirección URL de la página Administrar sitios de aplicación Web de proyecto contiene el GUID del nombre del directorio. Por ejemplo, en https://ServerName:38312/_admin/managepwa.aspx?appid=c476f85e-5c61-4de9-91e3-45e5127e20dc, el directorio de la aplicación de servicio de Project Server es c476f85e5c614de991e345e5127e20dc (sin los guiones).

Sugerencia

Para encontrar rápidamente el GUID de la aplicación de servicio de Project Server, utilice un comando de Windows PowerShell que se instala con SharePoint Server 2010. En el menú Inicio , haga clic en Todos los programas, haga clic en Productos de Microsoft SharePoint 2010y, a continuación, haga clic en Consola de administración de SharePoint 2010. Siguiente es el comando y los resultados en la ventana de Consola de administración de SharePoint 2010 para las aplicaciones de servicio definidos (el GUID será diferente). Quitar los guiones del GUID para la aplicación de servicios 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 conoce el nombre completo de la aplicación de servicio de Project Server, se puede utilizar para obtener el valor GUID, por ejemplo:

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

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

El nombre del directorio virtual de aplicación de servicio de Project Server en el ejemplo es c476f85e5c614de991e345e5127e20dc (sin guiones), por lo que la dirección URL de back-end del servicio de proyecto es https://ServerName:32843/c476f85e5c614de991e345e5127e20dc/PSI/Project.svc. Sin embargo, la dirección URL de servicios de fondo de un servicio de Project Server no es utilizable directamente debido basada en solicitudes autenticación y los enlaces de WCF personalizados en la aplicación de servicios Web de SharePoint. Por ese motivo, debe ser el acceso a los servicios WCF a través del enrutador de front-end ProjectServer.svc en Project Web App. Para obtener más información acerca de los enlaces personalizados, consulte Procedimiento para crear un ensamblado de proxy para servicios de WCF (traducción automática).

Cada archivo .svc incluye una referencia a la implementación de WCF para Project Server. Por ejemplo, el archivo Project.svc para el servicio de proyecto tiene el siguiente contenido.

<%@ 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"
%>

Con el enrutador de ProjectServer.svc:   El front-end Project Web App incluye un servicio WCF, ProjectServer.svc, que actúa como enrutador para que todos los servicios de Project Server que están disponibles en la aplicación de servicios Web de SharePoint. Aplicaciones externas no se llama a ProjectServer.svc directamente, pero establece como un extremo para el proxy de servicios PSI.

Nota

En Project Server 2010, el servidor de proyecto de servicio para Project Web App ([Program Files]\Common Files\Microsoft Shared\Web Server Extensions\14\isapi\PSI\ProjectServer.svc) actúa únicamente como un enrutador para obtener acceso externo a los servicios PSI en el equipo que ejecuta Project Server. En consecuencia, ProjectServer.svc está deshabilitado para la publicación de metadatos. Si se intenta ver https://ServerName/ProjectServerName/_vti_bin/psi/ProjectServer.svc en Internet Explorer, obtendrá un error: no se puede encontrar la página Web. Este comportamiento es normal y no debe intentar habilitar la publicación de metadatos para ProjectServer.svc.

Figura 2 muestra la ubicación de todas las interfaces WCF de los servicios PSI, en el cuadro de diálogo Administrador de Internet Information Services (IIS) en Windows Server 2008. En este ejemplo, la dirección URL de Project Web App es https://server/pwa en el sitio de Sharepoint-80 y, al igual que en Project Server 2007, tiene un subdirectorio de _vti_bin/PSI.

Figura 2. Ubicación de los servicios PSI en el Administrador de IIS

Ubicación de los servicios web PSI en el Administrador de IIS

En SharePoint Server 2010, se instalan las aplicaciones de servicio en la aplicación de Servicios web de SharePoint . Puede utilizar el Administrador de IIS para encontrar los enlaces de transporte del sitio. Los enlaces predeterminados son el puerto 32843 para HTTP y puerto 32844 para HTTPS. El nombre del directorio virtual de los servicios de Project Server es un GUID. El URI de general para la interfaz WCF del servicio de recursos, por tanto, es https://ServerName:32843/[GUID]/PSI/Resource.svc. En Microsoft Internet Explorer, no tiene acceso directo el contrato de servicio WCF a menos que cambie temporalmente el archivo web.config en el directorio PSI.

Nota

Cuando se intenta establecer una referencia a un servicio WCF en Visual Studio, por ejemplo, https://ServerName:32843/1712e91aeb884cdfb437299b89de3443/psi/Resource.svc, se producirá un error de System.InvalidOperationException.

Para establecer una referencia de servicio directamente en Visual Studio, debe cambiar temporalmente el archivo web.config para los servicios de Project Server back-end, en C:\Program Files\Microsoft Office Servers\14.0\WebServices\Shared\ProjectServer\PSI. Para obtener instrucciones, consulte Procedimiento para crear un ensamblado de proxy para servicios de WCF (traducción automática).

A continuación muestra el error cuando intenta establecer una referencia de servicio, si no cambia el archivo web.config para los servicios 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.

Para utilizar el ProjectServer.svc de front-end para enrutar las llamadas a la interfaz WCF de PSI en las aplicaciones, debe hacer lo siguiente:

  1. Agregar referencias para los servicios PSI que necesita. Como se describe en Requisitos previos para ejemplos de código basados en WCF (traducción automática), hay tres formas de agregar una referencia de servicio. Nos

    • Establecer una referencia al ensamblado de proxy de ProjectServerServices.dll (PSI).

    • Agregue el archivo de salida de SvcUtil.exe de la referencia WCF a la solución de Visual Studio.

    • Agregue una referencia de servicio con Visual Studio.

    En lugar de establecer directamente una referencia de servicio, se recomienda que establezca una referencia al ensamblado de proxy de ProjectServerServices.dll o agregar un archivo de código fuente del proxy a la solución de Visual Studio. Los archivos de origen y el ensamblado de proxy están en la descarga SDK de Project 2010.

  2. Crear extremos para los servicios que vaya a ProjectServer.svc en el front-end de Project Web App. Para obtener más información sobre la creación de extremos WCF para servicios de Project Server, consulte Tutorial: Desarrollo de aplicaciones PSI mediante WCF (traducción automática), que muestra cómo crear mediante programación los enlaces de WCF y los extremos sin utilizar un archivo app.config y cómo modificar un archivo app.config con el Editor de configuración del servicio de WCF en Visual Studio.

Migración y compatibilidad de soluciones personalizadas

Los métodos públicos de Web de PSI que se producen en Project Server 2007 y de Project Server 2010 tienen las mismas firmas. Clases y miembros en las interfaces públicas de ASMX y WCF de Project Server 2010 son idénticos. Sin embargo, puede variar entre Project Server 2007 y Project Server 2010 el número de columnas y el tamaño de tablas de datos utiliza o devueltos por métodos PSI. También existen diferencias en la base de datos de informes.

Si las soluciones para Project Server 2007 utilizan la interfaz ASMX a través de la dirección URL Project Web App front-end, que puedan utilizar la interfaz ASMX. Si las soluciones de Project Server 2007 utilizan ASMX a través del proveedor de servicios compartidos (SSP), se debe cambiar para utilizar la interfaz WCF. Le recomendamos que utilice la interfaz WCF donde sea posible; tiene ventajas en la arquitectura orientada a servicios, seguridad, rendimiento y escalabilidad.

La configuración del Modo de compatibilidad en Project Web App hace referencia sólo a la que hace Project Server 2010 compatible con Project Professional 2007. La configuración no tiene ningún efecto en las soluciones de terceros.

Nota

Aunque la mayoría de las soluciones desarrollada para Project Server 2007 también debe funcionar con Project Server 2010, le recomendamos que pruebe las soluciones en una instalación de no producción de Project Server 2010 antes de implementarlas en un servidor de producción.

Si decide migrar una solución de Project Server 2007 para utilizar la interfaz WCF, o si la solución no funciona como se esperaba en Project Server 2010, deberá como mínimo lo siguiente:

  • Haga una lista de las referencias Web y los nombres de espacio de nombres y, a continuación, elimine las referencias Web ASMX.

  • Agregar el ensamblado de proxy de WCF ProjectServerServices.dll o los archivos de origen de los servicios necesarios o vuelva a agregar las referencias ASMX front-end mediante el uso de los mismos nombres de espacio de nombres. Existen varios métodos nuevos y conjuntos de datos en los servicios PSI en Project Server 2010.

  • Cambiar las referencias de ensamblado se utilizan los ensamblados de Project Server 2010, como, por ejemplo, Microsoft.Office.Project.Server.Library.dll y Microsoft.Office.Project.Server.Events.Receivers.dll.

  • Compilar y probar la solución.

Debe utilizar Visual Studio 2008 SP1 o posterior para actualizar las soluciones para utilizar la interfaz WCF. La versión comercial de Project Server 2010 requiere Microsoft Visual Studio 2010 para crear e implementar flujos de trabajo de Project Server.

Cuando se actualiza una aplicación o componente, Visual Studio le permite establecer el Marco de destino en la página de propiedades de la aplicación a una versión específica de la.NET Framework. Si el marco de destino.NET Framework 2.0, puede actualizar y agregar nuevas referencias Web utilizando ASMX. Si se establece el marco de destino.NET Framework 3.5, puede tener acceso el cuadro de diálogo Agregar referencia de servicio para servicios WCF.

Importante

Soluciones o personalizaciones que se desarrollan con las versiones preliminares de Project Server 2010 deben volverse a compilar y podrían requerir cambios adicionales para la versión de lanzamiento.

Nota

Declinación de responsabilidades de traducción automática: Este artículo se ha traducido con un sistema informático sin intervención humana. Microsoft ofrece estas traducciones automáticas para que los hablantes de otros idiomas distintos del inglés puedan disfrutar del contenido sobre los productos, los servicios y las tecnologías de Microsoft. Puesto que este artículo se ha traducido con traducción automática, es posible que contenga errores de vocabulario, sintaxis o gramática.

Vea también

Tareas

Tutorial: Desarrollo de aplicaciones PSI mediante WCF (traducción automática)

Procedimiento para crear un ensamblado de proxy para servicios de WCF (traducción automática)

Procedimiento para usar suplantación con WCF (traducción automática)

Conceptos

Información general sobre la referencia de PSI (traducción automática)

Requisitos previos para ejemplos de código basados en ASMX (traducción automática)

Requisitos previos para ejemplos de código basados en WCF (traducción automática)

Otros recursos

Windows Communication Foundation

Beginner's Guide to Windows Communication Foundation

Historial de cambios

Fecha

Descripción

Motivo

Mayo de 2010

Publicación inicial