Cómo configurar un puerto de envío WCF-Custom
Los puertos de envío WCF-Custom pueden configurarse mediante programación, o bien utilizando la consola de administración de BizTalk.
Propiedades de configuración
El modelo de objetos del Explorador de BizTalk expone una interfaz específica del adaptador para los puertos de envío denominados ITransportInfo que tienen la propiedad de lectura y escritura TransportTypeData . Esta propiedad acepta una bolsa de propiedades de configuración de puerto de envío WCF-Custom con la forma de par nombre-valor de cadenas XML.
La propiedad TransportTypeData de la interfaz ITransportInfo no es necesaria. Si no se establece, el adaptador usa los valores predeterminados para la configuración del puerto de envío WCF-Custom, como se indica en la siguiente tabla.
En la lista siguiente se describen las propiedades de configuración que puede establecer en el modelo de objetos del Explorador de BizTalk para WCF-Custom puertos de envío:
Nombre de propiedad: Identidad
Tipo: Blob XML
Ejemplo:
<identity> <userPrincipalName value="username@contoso.com" /> </identity>
Descripción: especifique la identidad del servicio que espera este puerto de envío. Esta configuración permite al puerto de envío autenticar el servicio. En el proceso del protocolo de enlace entre el cliente y el servicio, la infraestructura de WCF garantizará que la identidad de servicio esperada coincida con los valores de este elemento. Los valores que se pueden especificar para la propiedad Identity difieren según la configuración de seguridad.
El valor predeterminado es una cadena vacía.
Nombre de propiedad: StaticAction
Tipo: String
Descripción: especifique el campo de encabezado SOAPAction para los mensajes salientes. Esta propiedad también se puede establecer a través de la propiedad de contexto de mensaje WCF. Acción en una canalización o orquestación. Puede especificar este valor de dos maneras diferentes: el formato de acción única y el formato de asignación de acciones. Si establece esta propiedad en el formato de acción única, como
http://contoso.com/Svc/Op1
, el encabezado SOAPAction para los mensajes salientes siempre se establece en el valor especificado en esta propiedad.Si establece esta propiedad en el formato de asignación de acciones, el encabezado SOAPAction saliente viene determinado por bts. Propiedad de contexto de operación . Por ejemplo, si esta propiedad se establece en el siguiente formato XML y BTS. La propiedad Operation se establece en Op1 y, a continuación, el adaptador de envío de WCF usa
http://contoso.com/Svc/Op1
para el encabezado SOAPAction saliente.<BtsActionMapping> <Operation Name="Op1" Action="http://contoso.com/Svc/Op1" /> <Operation Name="Op2" Action="http://contoso.com/Svc/Op2" /> </BtsActionMapping>
Si los mensajes salientes proceden de un puerto de orquestación, las instancias de orquestación establecen dinámicamente el BTS. Propiedad Operation con el nombre de la operación del puerto. Si los mensajes salientes se enrutan con enrutamiento basado en contenido, puede establecer el BTS. Propiedad Operation en componentes de canalización.
El valor predeterminado es una cadena vacía.
Nombre de propiedad: BindingType
Tipo: Enumeración
Para obtener más información sobre los nombres de miembro de la propiedad BindingType , vea la propiedad Tipo de enlace en el cuadro de diálogo Propiedades de transporte personalizadas de WCF, Enviar, Enlace de la guía de interfaz de usuario y referencia del espacio de nombres de api de desarrolladores.
Descripción: especifique el tipo del enlace que se va a usar para el punto de conexión que usa este puerto de envío.
Si usa un enlace personalizado, la propiedad BindingType se puede configurar con los enlaces personalizados. Para obtener más información sobre cómo usar el enlace personalizado, vea How to Enable the WCF Extensibility Points with the WCF Adapters.How to Enable the WCF Extensibility Points with the WCF Adapters.
Nombre de propiedad: BindingConfiguration
Tipo: Blob XML
Ejemplo:
<binding name="netNamedPipeBinding"> <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /> <security mode="None" /> </binding>
Descripción: especifique una cadena XML con el
<binding>
elemento para configurar diferentes tipos de enlaces predefinidos proporcionados por Windows Communication Foundation (WCF). Para obtener más información acerca del enlace proporcionado por el sistema y el enlace personalizado, vea los temas correspondiente enumerados en la sección Vea también.BizTalk Server no admite todos los tipos de los elementos de extensión de enlace que se pueden configurar con la propiedad BindingConfiguration.
El valor predeterminado es una cadena vacía.
Nombre de propiedad: EndpointBehaviorConfiguration
Tipo: Blob XML
Ejemplo:
<behavior name="sampleBehavior"> <callbackTimeouts /> </behavior>
Descripción: especifique una cadena XML con el
<behavior>
elemento del<endpointBehaviors>
elemento para configurar los valores de comportamiento de un punto de conexión WCF. Para obtener más información sobre el<endpointBehaviors>
elemento, vea el tema adecuado en Vea también.BizTalk Server no admite todos los tipos de elementos de extensión de comportamiento que puede configurar con la propiedad EndpointBehaviorConfiguration.
El valor predeterminado es una cadena vacía.
Nombre de propiedad: AffiliateApplicationName
Tipo: String
Descripción: especifique la aplicación afiliada que se va a usar para Enterprise Single Sign-On (SSO).
El valor predeterminado es una cadena vacía.
Nombre de propiedad: UseSSO
Tipo: Boolean
Descripción: especifique si se va a usar single Sign-On para recuperar las credenciales de cliente para la autenticación con el servidor de destino.
Valor predeterminado: False
Nombre de propiedad: UserName
Tipo: String
Descripción: especifique el nombre de usuario que se usará para la autenticación con el servidor de destino cuando la propiedad UseSSO esté establecida en False. No es necesario usar el
domain\user
formato de esta propiedad.El valor predeterminado es una cadena vacía.
Nombre de propiedad: Contraseña
Tipo: String
Descripción: especifique la contraseña que se usará para la autenticación con el servidor de destino cuando la propiedad UseSSO esté establecida en False.
El valor predeterminado es una cadena vacía.
Nombre de propiedad: OutboundBodyLocation
Tipo: Enumeración
- UseBodyElement: use la parte del cuerpo del mensaje de BizTalk para crear el contenido del elemento Cuerpo SOAP para un mensaje saliente.
- UseTemplate: use la plantilla proporcionada en la propiedad OutboundXMLTemplate para crear el contenido del elemento Cuerpo SOAP para un mensaje saliente.
Para obtener más información sobre cómo usar la propiedad OutboundBodyLocation , vea Especificar el cuerpo del mensaje para los adaptadores WCF.
Descripción: especifique la selección de datos para el elemento Cuerpo SOAP de los mensajes WCF salientes.
Valor predeterminado: UseBodyElement
Nombre de propiedad: OutboundXMLTemplate
Tipo: String
Para obtener más información sobre cómo usar la propiedad OutboundXMLTemplate , vea Especificar el cuerpo del mensaje para los adaptadores de WCF.
Descripción: especifique la plantilla con formato XML para el contenido del elemento Cuerpo SOAP de un mensaje saliente. Esta propiedad es necesaria si la propiedad OutboundBodyLocation está establecida en UseTemplate.
El valor predeterminado es una cadena vacía.
Nombre de propiedad: InboundBodyLocation
Tipo: Enumeración
- UseBodyElement: use el contenido del elemento Cuerpo SOAP de un mensaje entrante para crear la parte del cuerpo del mensaje de BizTalk. Si el elemento Body tiene más de un elemento secundario, solo el primer elemento se convierte en la parte del cuerpo del mensaje de BizTalk. Esta propiedad sólo es válida para puertos de petición-respuesta.
- UseEnvelope: cree la parte del cuerpo del mensaje de BizTalk a partir del sobre SOAP completo de un mensaje entrante.
- UseBodyPath: use la expresión de ruta de acceso del cuerpo en la propiedad InboundBodyPathExpression para crear la parte del cuerpo del mensaje de BizTalk. La expresión de ruta de acceso del cuerpo se evalúa con el elemento secundario inmediato del elemento Cuerpo SOAP de un mensaje entrante. Esta propiedad sólo es válida para puertos de petición-respuesta.
Para obtener más información sobre cómo usar la propiedad InboundBodyLocation , vea Especificar el cuerpo del mensaje para los adaptadores WCF.
Descripción: especifique la selección de datos para el elemento Body SOAP de los mensajes WCF entrantes.
Valor predeterminado: UseBodyElement
Nombre de propiedad: InboundBodyPathExpression
Tipo: String
Para obtener más información sobre cómo usar la propiedad InboundBodyPathExpression , vea Esquema de propiedades y propiedades de adaptadores de WCF.
Descripción: especifique la expresión de ruta de acceso del cuerpo para identificar una parte específica de un mensaje entrante usado para crear la parte del cuerpo del mensaje de BizTalk. Esta expresión de ruta de acceso del cuerpo se evalúa con el elemento secundario inmediato del nodo Cuerpo SOAP de un mensaje entrante. Si esta expresión de ruta de cuerpo devuelve varios nodos, solo se elegirá el primero de ellos para la parte del cuerpo del mensaje de BizTalk. Esta propiedad es necesaria si la propiedad InboundBodyLocation está establecida en UseBodyPath. Esta propiedad sólo es válida para puertos de petición-respuesta.
El valor predeterminado es una cadena vacía.
Nombre de propiedad: InboundNodeEncoding
Tipo: Enumeración
- XML
- Base64: codificación base64
- Hex: codificación hexadecimal
- Cadena: codificación de texto; UTF-8
- XML: los adaptadores WCF crean el cuerpo del mensaje de BizTalk con el XML externo del nodo seleccionado por la expresión de ruta de acceso del cuerpo en InboundBodyPathExpression.
Descripción: especifique el tipo de codificación que usa el adaptador de envío WCF-Custom para descodificar el nodo identificado por la ruta de acceso del cuerpo especificada en InboundBodyPathExpression. Esta propiedad es necesaria si la propiedad InboundBodyLocation está establecida en UseBodyPath. Esta propiedad sólo es válida para puertos de petición-respuesta.
Valor predeterminado: XML
Nombre de propiedad: PropagateFaultMessage
Tipo: Boolean
- True: enrute el mensaje que produce un error en el procesamiento saliente a una aplicación de suscripción (por ejemplo, otro puerto de recepción o programación de orquestación).
- False: suspende los mensajes con errores y genera una confirmación negativa (NACK).
Descripción: especifique si se debe enrutar o suspender los mensajes con errores en el procesamiento de salida.
Esta propiedad sólo es válida para puertos de petición-respuesta.
Valor predeterminado: True
Nombre de propiedad: ReferencedBindings
Tipo: Blob XML
Ejemplo:
<BindingConfiguration vt="8"> <wsFederationHttpBinding> <binding name="sampleBinding"> <security mode="Message"> <message issuedKeyType="AsymmetricKey"> <issuer address="http://www.contoso.com/samplests" binding="wsFederationHttpBinding" bindingConfiguration="contosoSTSBinding"/> </message> </security> </binding> </wsFederationHttpBinding> </BindingConfiguration> <ReferencedBindings vt="8"> <bindings> <wsFederationHttpBinding> <binding name="contosoSTSBinding"> <security mode="Message"> <message negotiateServiceCredential="false"> <issuer address="http://northwind.com/samplests" bindingConfiguration="northwindBinding" binding="wsHttpBinding"> </issuer> </message> </security> </binding> </wsFederationHttpBinding> <wsHttpBinding> <binding name="northwindBinding"> <security mode="Message"> <message clientCredentialType="Certificate" /> </security> </binding> </wsHttpBinding> </bindings> </ReferencedBindings>
La propiedad ReferencedBinding no debe contener la configuración de enlace utilizada en la propiedad BindingConfiguration .
Descripción: especifique las configuraciones de enlace a las que hace referencia el atributo bindingConfiguration del
<issuer>
elemento para wsFederationHttpBinding y customBinding, que indica el servicio de token de seguridad (STS) que emite tokens de seguridad. Para obtener más información sobre el<issuer>
elemento, vea Esquema de configuración de WCF:<issuer>
.La información de enlace que incluye el
<issuer>
elemento para wsFederationHttpBinding y customBinding se puede configurar a través de la propiedad BindingConfiguration de la WCF-Custom y los adaptadores de WCF-CustomIsolated. Todas las configuraciones de enlace a las que se hace referencia para esta propiedad deben colocarse en forma de<bindings>
elemento.No se puede configurar esta propiedad en la pestaña Enlace del cuadro de diálogo propiedades de transporte. Se puede importar y exportar esta propiedad mediante la pestaña Importar o exportar del cuadro de diálogo Propiedades de transporte de los adaptadores de WCF-Custom y WCF-CustomIsolated.
El atributo bindingConfiguration del
<issuer>
elemento debe hacer referencia a un nombre de enlace válido en esta propiedad.El
<issuer>
elemento de las configuraciones de enlace a las que se hace referencia también puede hacer referencia a una configuración de enlace diferente en esta propiedad si esta cadena de referencia no realiza una dependencia circular.El valor predeterminado es una cadena vacía.
Configurar un puerto de envío WCF-Custom con la consola de administración de BizTalk
Se pueden establecer variables del adaptador de puerto de envío WCF-Custom en la consola de administración de BizTalk. Si no se establecen las propiedades del puerto de envío, se usan los valores predeterminados de la configuración del puerto de envío WCF-Custom, como se indica en la tabla anterior.
Configuración de variables para un puerto de envío de WCF-Custom
Si planea usar los puntos de extensibilidad WCF, tales como los elementos de enlace personalizados, el elemento de comportamiento personalizado y los componentes de canal personalizados, al configurar el adaptador de WCF-Custom, debe agregar los ensamblados que implementan los puntos de extensibilidad y todos los ensamblados dependientes en la caché de ensamblados global tanto en el equipo de procesamiento de BizTalk (equipo en tiempo de ejecución), como en el equipo de administración. Además, debe registrar los componentes de extensión en el archivo machine.config. Para obtener más información sobre cómo usar los puntos de extensibilidad de WCF con el adaptador personalizado de WCF, vea How to Enable the WCF Extensibility Points with the WCF Adapters.
En la consola de administración de BizTalk, cree un nuevo puerto de envío o haga doble clic en un puerto de envío existente para modificarlo. Para obtener más información, vea Cómo crear un puerto de envío. Configure todas las opciones de puerto de envío y especifique WCF-Custom para la opción Tipo en la sección Transporte de la pestaña General de la guía de interfaz de usuario y la referencia del espacio de nombres de api de desarrolladores.
En la pestaña General , en la sección Transporte , haga clic en el botón Configurar situado junto a Tipo.
En el cuadro de diálogo Propiedades de transporte personalizadas de WCF , en la pestaña General , configure la dirección del punto de conexión, la identidad del servicio y el encabezado SOAPAction para el puerto de envío de WCF-Custom. Para obtener más información sobre la pestaña General del cuadro de diálogo Propiedades de transporte personalizadas de WCF , vea la pestaña Propiedades de transporte personalizadas de WCF, Enviar, General en la guía de la interfaz de usuario y la referencia del espacio de nombres de api de desarrolladores.
En el cuadro de diálogo Propiedades de transporte personalizadas de WCF , en la pestaña Enlace , configure diferentes tipos de enlaces predefinidos o personalizados para WCF. Para obtener más información sobre la pestaña Enlace del cuadro de diálogo Propiedades de transporte personalizadas de WCF , vea el cuadro de diálogo Propiedades de transporte personalizado de WCF, Enviar, Enlace pestaña en la guía de interfaz de usuario y referencia del espacio de nombres de api de desarrolladores.
En el cuadro de diálogo Propiedades de transporte personalizadas de WCF , en la pestaña Comportamiento , configure el comportamiento del punto de conexión para este puerto de envío. Un comportamiento de punto de conexión es un conjunto de los elementos de extensión de comportamiento que modifican o amplían la funcionalidad de servicio o cliente. Para obtener más información sobre la pestaña Comportamiento del cuadro de diálogo Propiedades de transporte personalizadas de WCF , vea el cuadro de diálogo Propiedades de transporte personalizadas de WCF, Enviar, Comportamiento de la guía de la interfaz de usuario y la referencia del espacio de nombres de api de desarrolladores.
En el cuadro de diálogo Propiedades de transporte personalizadas de WCF , en la pestaña Credenciales , especifique las credenciales que se usarán al enviar mensajes. Para obtener más información sobre la pestaña Credenciales del cuadro de diálogo Propiedades de transporte personalizadas de WCF , vea la pestaña Propiedades de transporte personalizadas de WCF, Enviar, Credenciales en la guía de la interfaz de usuario y la referencia del espacio de nombres de api de desarrolladores.
En el cuadro de diálogo Propiedades de transporte personalizadas de WCF , en la pestaña Mensajes , especifique la selección de datos para el elemento Cuerpo SOAP. Para obtener más información sobre la pestaña Mensajes del cuadro de diálogo Propiedades de transporte personalizadas de WCF , vea la pestaña Propiedades de transporte personalizadas de WCF, Enviar, Mensajes en la guía de la interfaz de usuario y en la referencia del espacio de nombres de la API de desarrolladores.
En la pestaña Importar o exportar del cuadro de diálogo Propiedades de transporte WCF-Custom, importe y exporte las propiedades Dirección (URI) e Identidad de extremo en la ficha General, la información de enlace en la ficha Enlace y el comportamiento de extremo en la ficha Comportamiento para este puerto de envío. Para obtener más información sobre la pestaña Importar/Exportar del cuadro de diálogo Propiedades de transporte personalizadas de WCF , vea la pestaña Propiedades de transporte personalizadas de WCF, Enviar, Importar y exportar en la guía de la interfaz de usuario y la referencia del espacio de nombres de la API de desarrolladores.
Configuración de un puerto de envío de WCF-Custom mediante programación
Puede usar el siguiente formato para establecer las propiedades:
<CustomProps>
<OutboundXmlTemplate vt="8"><bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="xml"/></OutboundXmlTemplate>
<InboundBodyPathExpression vt="8" />
<EndpointBehaviorConfiguration vt="8"><behavior name="sampleBehavior"><callbackTimeouts /></behavior></EndpointBehaviorConfiguration>
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
<StaticAction vt="8">http://www.northwindtraders.com/Service/Operation</StaticAction>
<BindingConfiguration vt="8"><binding name="NetNamedPipeOrderProcessService.OrderProcessServieEndpoint"><readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384" /><security mode="None" /></binding></BindingConfiguration>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<UseSSO vt="11">0</UseSSO>
<AffiliateApplicationName vt="8" />
<BindingType vt="8">netNamedPipeBinding</BindingType>
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<UserName vt="8" />
<PropagateFaultMessage vt="11">-1</PropagateFaultMessage>
</CustomProps>
El siguiente fragmento de código muestra la creación de un puerto de envío WCF-Custom:
// Use BizTalk Explorer object model to create new WCF-Custom send port.
string server = System.Environment.MachineName;
string database = "BizTalkMgmtDb";
string connectionString = string.Format("Server={0};Database={1};Integrated Security=true", server, database);
string transportConfigData = @"<CustomProps>
<StaticAction vt=""8"">http://www.northwindtraders.com/Service/Operation</StaticAction>
<EndpointBehaviorConfiguration vt=""8""><behavior name=""sampleBehavior""><callbackTimeouts /></behavior></EndpointBehaviorConfiguration>
<BindingType vt=""8"">netNamedPipeBinding</BindingType>
</CustomProps>";
//requires project reference to \Program Files\Microsoft BizTalk Server 2009\Developer Tools\Microsoft.BizTalk.ExplorerOM.dll
BtsCatalogExplorer explorer = new Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer();
explorer.ConnectionString = connectionString;
// Add a new BizTalk application
Application application = explorer.AddNewApplication();
application.Name = "SampleBizTalkApplication";
// Save
explorer.SaveChanges();
// Add a new static one-way send port
SendPort sendPort = application.AddNewSendPort(false, false);
sendPort.Name = "SampleSendPort";
sendPort.PrimaryTransport.TransportType = explorer.ProtocolTypes["WCF-Custom"];
sendPort.PrimaryTransport.Address = "net.pipe://mycomputer/private/samplequeue";
sendPort.PrimaryTransport.TransportTypeData = transportConfigData; // propertyData; // need to change
sendPort.SendPipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruTransmit"];
// Save
explorer.SaveChanges();
Consulte también
Esquema de propiedades y propiedades de adaptadores de WCF Especificando el cuerpo del mensaje para los adaptadores wcFinstalando certificados para los adaptadores wcFconfigurando el adaptador de WCF-Customconfiguración de puertos de envío dinámicos mediante el comportamiento de enlaces de propiedades<de contexto de adaptadores><WCF de <endpointBehaviors>>