Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El modelo de aplicación de Windows Communication Foundation (WCF) está diseñado para resolver la mayor parte de los requisitos de comunicación de cualquier aplicación distribuida. Pero siempre hay escenarios que no admiten el modelo de aplicación predeterminado y las implementaciones proporcionadas por el sistema. El modelo de extensibilidad de WCF está diseñado para admitir escenarios personalizados al permitirle modificar el comportamiento del sistema en cada nivel, incluso hasta el punto de reemplazar todo el modelo de aplicación. En este tema se describen las distintas áreas de extensión y se apunta a más información sobre cada una.
Áreas que se van a extender
Puede extenderse:
Tiempo de ejecución de la aplicación. Esto amplía el envío y el procesamiento de mensajes para la aplicación. Esta área también incluye la extensión del sistema de seguridad, el sistema de metadatos, el sistema de serialización y los enlaces y elementos de enlace que conectan la aplicación con el sistema de canal subyacente.
El canal y el tiempo de ejecución del canal. Esto amplía el sistema que funciona en el nivel de mensaje, proporcionando compatibilidad con el protocolo, el transporte y la codificación.
Tiempo de ejecución del host. Esto extiende la relación del dominio de aplicación de hospedaje al canal y al entorno de ejecución de la aplicación.
Extensión del entorno de ejecución de la aplicación
En las aplicaciones WCF, hay una distinción entre los mensajes destinados a un canal y mensajes correspondientes destinados a la propia aplicación. Los mensajes de canal admiten alguna funcionalidad relacionada con el canal, como establecer una conversación segura o establecer una sesión confiable. Estos mensajes no están disponibles para el tiempo de ejecución de la aplicación; se procesan antes de que la capa de aplicación esté implicada.
Los mensajes de aplicación contienen datos destinados a una operación de cliente o servicio que usted o el cliente han creado. Estos mensajes están disponibles para el sistema de extensión de nivel de aplicación en forma de mensaje o objeto, dependiendo de sus necesidades.
Todos los mensajes pasan por el sistema de canales; solo se pasan mensajes de aplicación desde el sistema de canal a la aplicación. Para crear una nueva funcionalidad de nivel de canal, debe ampliar el sistema de canales. Para crear una nueva funcionalidad de nivel de aplicación, debe ampliar el tiempo de ejecución del servicio o del cliente (distribuidores y generadores de canales, respectivamente). Para obtener más información sobre cómo extender el entorno de ejecución de la aplicación, consulte Extensión de ServiceHost y la capa de modelo de servicio.
Extensión de la seguridad
Para crear mecanismos de seguridad personalizados, como tokens y credenciales, debe ampliar el sistema de seguridad. Para obtener más información, consulte Extensión de la seguridad.
Extensión de metadatos
Para exponer los metadatos de manera distinta a la por defecto, es necesario ampliar el sistema de metadatos. Para obtener más información, vea Extender el sistema de metadatos.
Extensión de la serialización
Para crear codificadores personalizados, proporcione suplentes de datos u otro trabajo que implique la personalización de los datos transferidos, debe ampliar el sistema de serialización. Para obtener más información, consulte Extensión de codificadores y serializadores.
Extensión de vinculaciones
Para asociar canales de transporte o protocolo con la capa de aplicación, debe extender el sistema de enlace. Para obtener más información, consulte Extensión de enlaces.
Extensión del sistema de canales
Para crear canales que admitan transportes personalizados o funcionalidades de protocolo, consulte Extensión de la capa de canal.
Extensión del sistema de hospedaje de servicios
Para modificar el modelo de aplicación para todo el servicio, debe extender la clase System.ServiceModel.ServiceHostBase. Para obtener más información, consulte Ampliar ServiceHost y la capa del modelo de servicio.
Para modificar la relación entre el dominio de aplicación de hospedaje y el host de servicio, debe extender la System.ServiceModel.Activation.ServiceHostFactory clase . Para obtener más información, vea Extender el hospedaje mediante ServiceHostFactory.