Compartir a través de


Cómo configurar una ubicación de recepción WCF-CustomIsolated

Puede configurar una ubicación de recepción WCF-CustomIsolated mediante programación o con la consola de administración de BizTalk.

Propiedades de configuración

El modelo de objetos del Explorador de BizTalk permite crear y configurar ubicaciones de recepción mediante programación. El modelo de objetos del Explorador de BizTalk expone la interfaz de configuración de ubicación de recepciónIReceiveLocation que tiene una propiedad transportTypeData de lectura y escritura. Esta propiedad acepta una bolsa de propiedades de configuración de la ubicación de recepción WCF-CustomIsolated con formato de par nombre-valor de cadenas XML. Para establecer esta propiedad en el modelo de objetos del Explorador de BizTalk, debe establecer la propiedad InboundTransportLocation de la interfaz IReceiveLocation .

No es necesario establecer la propiedad TransportTypeData de la interfaz IReceiveLocation . Si no se establece, el adaptador de WCF-CustomIsolated usa los valores predeterminados para la configuración de la ubicación de recepción WCF-CustomIsolated, tal y como se indica en la siguiente tabla.

La siguiente tabla enumera las propiedades de configuración que se pueden establecer en el modelo de objetos del Explorador de BizTalk para la ubicación de recepción WCF-CustomIsolated.

Nombre de propiedad Tipo Descripción
Identidad Blob XML

Ejemplo:

<identity>

<userPrincipalName value="username@contoso.com" />

</Identidad>
Especificar la identidad de servicio que proporciona esta ubicación de recepción. Los valores que se pueden especificar para la propiedad Identity difieren según la configuración de seguridad. Esta configuración hace posible que el cliente autentique la ubicación de recepción. En el proceso de negociación entre el cliente y el servicio, la infraestructura de Windows Communication Foundation (WCF) asegurará que la identidad del servicio esperado coincide con los valores de este elemento.

El valor predeterminado es una cadena vacía.
BindingType Enumeración

- basicHttpBinding
- customBinding
- mexHttpBinding
- mexHttpsBinding
- mexNamedPipeBinding
- mexTcpBinding
- netMsmqBinding
- netNamedPipeBinding
- netPeerTcpBinding
- netTcpBinding
- wsDualHttpBinding
- wsFederationHttpBinding
- wsHttpBinding
Especificar el tipo de enlace que se va a usar para el extremo que utiliza esta ubicación de recepción. Nota: 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.

El valor predeterminado es una cadena vacía.
BindingConfiguration Blob XML

Ejemplo:

<binding name="wsHttpBinding" transactionFlow="true"><security><message clientCredentialType="UserName" /></security></binding>
Especifique una cadena XML con el <elemento de enlace> para configurar diferentes tipos de enlaces predefinidos proporcionados por Windows Communication Foundation (WCF). Para obtener más información sobre el enlace proporcionado por el sistema y el enlace personalizado, consulte los temas adecuados en Vea también. Nota: BizTalk Server no admite todos los tipos de elementos de extensión de enlace que se pueden configurar con la propiedad BindingConfiguration.

El valor predeterminado es una cadena vacía.
ServiceBehaviorConfiguration Blob XML

Ejemplo:

<behavior name="SampleServiceBehavior"><serviceAuthorization principalPermissionMode="UseAspNetRoles" /><serviceCredentials><serviceCertificate findValue="539d9ab3089bb6dc187fa7dbb382cf01f8d78f5f" storeLocation="CurrentUser" x509FindType="FindByThumbprint" /></serviceCredentials><serviceMetadata httpGetEnabled="true" /></behavior>
Especifique una cadena XML con el <elemento de comportamiento> del <elemento serviceBehaviors> para configurar los valores de comportamiento de un servicio WCF. Para obtener más información sobre el <elemento serviceBehaviors> , consulte el tema correspondiente en Vea también.

El valor predeterminado es una cadena vacía.
EndpointBehaviorConfiguration Blob XML

Ejemplo:

<behavior name="sampleBehavior"><callbackTimeouts /></behavior>
Especifique una cadena XML con el <elemento de comportamiento> del <elemento endpointBehaviors> para configurar los valores de comportamiento de un punto de conexión WCF. Para obtener más información sobre el <elemento endpointBehaviors> , consulte el tema correspondiente en Vea también. Nota: 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.
CredentialType Enumeración

- Ninguno: no use ninguna credencial cuando esta ubicación de recepción envíe mensajes de solicitud para sondear un servicio externo, o esta ubicación de recepción no necesita sondear ningún servicio externo.
- IssueTicket: use Enterprise Single Sign-On (SSO) para recuperar las credenciales de cliente para emitir un vale de SSO. Esta opción requiere el uso del modo de seguridad que permite que la ubicación de recepción suplante la cuenta de usuario para emitir un vale de SSO.
- UserAccount: use las credenciales especificadas en las propiedades Nombre de usuario y Contraseña cuando esta ubicación de recepción envíe mensajes de solicitud para sondear un servicio externo.
- GetCredentials: use la aplicación afiliada SSO especificada en la propiedad AffiliateApplicationName cuando esta ubicación de recepción envíe mensajes solicitados para sondear un servicio externo.
Especificar el tipo de credenciales de la ubicación de recepción que se van a usar al sondear un servicio externo

Valor predeterminado: None
UserName String Especificar el nombre de usuario que se va a usar con esta ubicación de recepción al sondear un servicio externo con el fin de recuperar los mensajes de respuesta. Esta propiedad es necesaria cuando la propiedad CredentialType está establecida en UserAccount.

El valor predeterminado es una cadena vacía.
Contraseña String Especificar la contraseña que se va a usar con esta ubicación de recepción al sondear un servicio externo con el fin de recuperar los mensajes de respuesta. Esta propiedad es necesaria cuando la propiedad CredentialType está establecida en UserAccount.

El valor predeterminado es una cadena vacía.
AffiliateApplicationName String Especificar la aplicación afiliada de SSO que se va a usar para devolver credenciales externas cuando la ubicación de recepción envíe mensajes de petición para sondear un servicio externo. La aplicación afiliada de SSO especificada debe tener una asignación entre la cuenta de Windows con la que se ejecuta la ubicación de recepción y la cuenta del servicio externo. Esta propiedad es necesaria cuando la propiedad CredentialType se establece en GetCredentials.

El valor predeterminado es una cadena vacía.
OrderedProcessing Boolean Especificar si desea conservar el orden de los mensajes al procesarlos.

Valor predeterminado: False
InboundBodyLocation 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.
- 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.
Especifique la selección de datos para el elemento Body SOAP de los mensajes WCF entrantes.

Valor predeterminado: UseBodyElement
InboundBodyPathExpression String

Para obtener más información sobre cómo usar la propiedad InboundBodyPathExpression , vea Esquema de propiedades y propiedades de adaptadores de WCF.
Especificar la expresión de ruta de cuerpo para identificar una parte específica de un mensaje entrante utilizada 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.

El valor predeterminado es una cadena vacía.
InboundNodeEncoding Enumeración

- Codificación 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.
Especifique el tipo de codificación que usa el adaptador de recepción WCF-CustomIsolated para descodificar el nodo identificado por la expresión de ruta de acceso del cuerpo especificada en InboundBodyPathExpression. Esta propiedad es necesaria si la propiedad InboundBodyLocation está establecida en UseBodyPath.

Valor predeterminado: XML
OutboundBodyLocation Enumeración

- UseBodyElement : use la parte del cuerpo del mensaje de BizTalk para crear el contenido del elemento Body soap para un mensaje de respuesta saliente.
- UseTemplate : use la plantilla proporcionada en la propiedad OutboundXMLTemplate para crear el contenido del elemento Cuerpo soap para un mensaje de respuesta saliente.

Para obtener más información sobre cómo usar la propiedad OutboundBodyLocation , vea Especificar el cuerpo del mensaje para los adaptadores WCF.
Especifique la selección de datos para el elemento Body SOAP de los mensajes WCF salientes. Esta propiedad sólo es válida para las ubicaciones de recepción de solicitud-respuesta.

Valor predeterminado: UseBodyElement
OutboundXMLTemplate 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.
Especifique la plantilla con formato XML para el contenido del elemento Cuerpo SOAP de un mensaje de respuesta saliente. Esta propiedad es necesaria si la propiedad OutboundBodyLocation está establecida en UseTemplate. Esta propiedad sólo es válida para las ubicaciones de recepción de solicitud-respuesta.

El valor predeterminado es una cadena vacía.
DisableLocationOnFailure Boolean Especificar si se va a deshabilitar la ubicación de recepción cuyo procesamiento de entrada no se puede realizar correctamente debido a un error de canalización de recepción o de enrutamiento.

Valor predeterminado: False
SuspendMessageOnFailure Boolean Especificar si se va a suspender el mensaje de solicitud cuyo procesamiento de entrada no se puede realizar correctamente debido a un error de canalización de recepción o de enrutamiento.

Valor predeterminado: True
IncludeExceptionDetailInFaults Boolean Especificar si se va a incluir información de excepción administrada en el detalle de los errores SOAP devueltos al cliente para fines de depuración.

Valor predeterminado: False
ReferencedBindings 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"/>

</Mensaje>

</Seguridad>

</Vinculante>

</wsFederationHttpBinding>

</BindingConfiguration>

<ReferencedBindings vt="8">

<enlaces>

<wsFederationHttpBinding>

<binding name="contosoSTSBinding">

<security mode="Message">

<message negotiateServiceCredential="false">

<issuer address="http://northwind.com/samplests" bindingConfiguration="northwindBinding" binding="wsHttpBinding">

</Emisor>

</Mensaje>

</Seguridad>

</Vinculante>

</wsFederationHttpBinding>

<wsHttpBinding>

<binding name="northwindBinding">

<security mode="Message">

<message clientCredentialType="Certificate" />

</Seguridad>

</Vinculante>

</wsHttpBinding>

</Enlaces>

</ReferencedBindings>

Nota: La propiedad ReferencedBinding no debe contener la configuración de enlace utilizada en la propiedad BindingConfiguration .
Especifique las configuraciones de enlace a las que hace referencia el atributo bindingConfiguration del <elemento issuer> 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 <elemento issuer> , consulte la documentación del <emisor> en Microsoft Learn.

La información de enlace que incluye el <elemento issuer> para wsFederationHttpBinding y customBinding se puede configurar a través de la propiedad BindingConfiguration del 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 elemento <bindings> .

Nota:

- 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 <elemento issuer> debe hacer referencia a un nombre de enlace válido en esta propiedad.

- El <elemento issuer> 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 crea una dependencia circular.

El valor predeterminado es una cadena vacía.

Cómo configurar una ubicación de recepción WCF-CustomIsolated con la consola de administración de BizTalk

Se pueden establecer variables del adaptador de ubicación de recepción WCF-CustomIsolated en la consola de administración de BizTalk. Si no se definen propiedades en la ubicación de recepción, se utilizarán los valores predeterminados del controlador de recepción establecidos en la consola de administración de BizTalk.

Nota

Antes de completar este procedimiento, debe haber agregado un puerto de recepción. Para más información, consulte Cómo crear un puerto de recepción.

Configuración de variables para una ubicación de recepción de WCF-CustomIsolated

  1. 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 a la hora de configurar el adaptador de WCF-CustomIsolated, debe agregar los ensamblados que implementan los puntos de extensibilidad, así como todos los ensamblados dependientes de la caché de ensamblados global, en el equipo de procesamiento de BizTalk (equipo en tiempo de ejecución) y 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 CustomIsolated de WCF, vea How to Enable the WCF Extensibility Points with the WCF Adapters.

  2. En la consola de administración de BizTalk, expanda BizTalk Server Administración, expanda Grupo de BizTalk, expanda Aplicaciones y, a continuación, expanda la aplicación en la que desea crear una ubicación de recepción.

  3. En la consola de administración de BizTalk, en el panel izquierdo, haga clic en el nodo Puerto de recepción . A continuación, en el panel de la derecha, haga clic con el botón secundario en el puerto de recepción asociado con una ubicación de recepción existente o que desee asociar con una nueva ubicación de recepción. A continuación, haga clic en Propiedades.

  4. En el cuadro de diálogo Propiedades del puerto de recepción, en el panel izquierdo, seleccione Ubicaciones de recepción y, a continuación, en el panel derecho, haga doble clic en una ubicación de recepción existente o haga clic en Nuevopara crear una nueva ubicación de recepción.

  5. En el cuadro de diálogo Propiedades de ubicación de recepción, en la sección Transporte junto a Tipo, seleccione WCF-CustomIsolated en la lista desplegable y, a continuación, haga clic en Configurar.

  6. En el cuadro de diálogo Propiedades de transporte WCF-CustomIsolated , en la pestaña General , configure la dirección del punto de conexión y la identidad de servicio para la ubicación de recepción del WCF-CustomIsolated. Para obtener más información sobre la pestaña General del cuadro de diálogo Propiedades de transporte WCF-CustomIsolated , vea el cuadro de diálogo Propiedades de transporte personalizadas de WCF, Recepción, pestaña General en la referencia de espacio de nombres de API de desarrolladores y guía de interfaz de usuario.

  7. En el cuadro de diálogo Propiedades de transporte WCF-CustomIsolated , 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 en el cuadro de diálogo Propiedades de transporte WCF-CustomIsolated , vea la pestaña Propiedades de transporte personalizadas de WCF, Recepción, Enlace en la guía de interfaz de usuario y referencia del espacio de nombres de la API de desarrolladores.

  8. En el cuadro de diálogo Propiedades de transporte WCF-CustomIsolated , en la pestaña Comportamiento , configure los comportamientos de punto de conexión y servicio para esta ubicación de recepción. Un comportamiento de extremo consiste en un conjunto de elementos de extensión de comportamiento que modifican o amplían el servicio o la funcionalidad del cliente. Para obtener más información sobre la pestaña Comportamiento en el cuadro de diálogo Propiedades de transporte WCF-CustomIsolated , vea la pestaña Propiedades de transporte personalizadas de WCF, Recepción, Comportamiento en la guía de interfaz de usuario y referencia del espacio de nombres de api de desarrolladores.

  9. En el cuadro de diálogo Propiedades de transporte WCF-CustomIsolated , en la pestaña Otros , configure las credenciales de esta ubicación de recepción que se usarán al sondear un servicio externo y si esta ubicación de recepción conserva el orden de los mensajes al procesar los mensajes. Para obtener más información sobre la pestaña Otros del cuadro de diálogo Propiedades de transporte WCF-CustomIsolated , vea el cuadro de diálogo Propiedades de transporte personalizadas de WCF, Recepción, Otra pestaña en la guía de interfaz de usuario y referencia del espacio de nombres de api de desarrolladores.

  10. En el cuadro de diálogo Propiedades de transporte WCF-CustomIsolated , 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 en el cuadro de diálogo Propiedades de transporte WCF-CustomIsolated , vea la pestaña Propiedades de transporte personalizadas de WCF, Recepción, Mensajes en la guía de la interfaz de usuario y referencia del espacio de nombres de la API de desarrolladores.

  11. En el cuadro de diálogo Propiedades de transporte WCF-CustomIsolated , en la pestaña Importar/Exportar , importe y exporte las propiedades Dirección (URI) e Identidad del punto de conexión en la pestaña General , la información de enlace en la pestaña Enlace y el comportamiento del punto de conexión en la pestaña Comportamiento de esta ubicación de recepción. Para obtener más información sobre la pestaña Importar/Exportar del cuadro de diálogo Propiedades de transporte WCF-CustomIsolated , vea la pestaña Propiedades de transporte personalizadas de WCF, Recepción, Importación y exportación en la guía de interfaz de usuario y referencia del espacio de nombres de api de desarrolladores.

Configurar una ubicación de recepción de WCF-CustomIsolated mediante programación

Puede usar el siguiente formato para establecer las propiedades:

<CustomProps>
  <InboundBodyPathExpression vt="8" />
  <InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
  <BindingConfiguration vt="8"><binding name="wsHttpBinding" transactionFlow="true"><security><message clientCredentialType="UserName" /></security></binding></BindingConfiguration>
  <OutboundXmlTemplate vt="8"><bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="xml"/></OutboundXmlTemplate>
  <CredentialType vt="8">None</CredentialType>
  <Identity vt="8" />
  <ServiceBehaviorConfiguration vt="8"><behavior name="SampleServiceBehavior"><serviceAuthorization principalPermissionMode="UseAspNetRoles" /><serviceCredentials><serviceCertificate findValue="539d9ab3089bb6dc187fa7dbb382cf01f8d78f5f" storeLocation="CurrentUser" x509FindType="FindByThumbprint" /></serviceCredentials><serviceMetadata httpGetEnabled="true" /></behavior></ServiceBehaviorConfiguration>
  <OrderedProcessing vt="11">0</OrderedProcessing>
  <IncludeExceptionDetailInFaults vt="11">0</IncludeExceptionDetailInFaults>
  <AffiliateApplicationName vt="8" />
  <DisableLocationOnFailure vt="11">0</DisableLocationOnFailure>
  <SuspendMessageOnFailure vt="11">0</SuspendMessageOnFailure>
  <BindingType vt="8">wsHttpBinding</BindingType>
  <UserName vt="8" />
  <InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
  <EndpointBehaviorConfiguration vt="8"><behavior name="EndpointBehavior" /></EndpointBehaviorConfiguration>
  <OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
</CustomProps>

El siguiente fragmento de código muestra la creación de una ubicación de recepción WCF-CustomIsolated:

// Use BizTalk Explorer object model to create new WCF-CustomIsolated receive location
string server = System.Environment.MachineName;
string database = "BizTalkMgmtDb";
string connectionString = string.Format("Server={0};Database={1};Integrated Security=true", server, database);
string transportConfigData = @"<CustomProps>
  <BindingConfiguration vt=""8""><binding name=""wsHttpBinding"" transactionFlow=""true""><security><message clientCredentialType=""UserName"" /></security></binding></BindingConfiguration>
  <BindingType vt=""8"">wsHttpBinding</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 = "SampleBizTalkApplication1001";
// Save
explorer.SaveChanges();

// Add a new one-way receive port
IReceivePort receivePort = application.AddNewReceivePort(false);
receivePort.Name = "SampleReceivePort";
// Add a new one-way receive location
IReceiveLocation receiveLocation = receivePort.AddNewReceiveLocation();
receiveLocation.Name = "SampleReceiveLocation";
// Find a receive handler for WCF-CustomIsolated
int i = 0;
for(i=0; i < explorer.ReceiveHandlers.Count; ++i)
{
    if("WCF-CustomIsolated" == explorer.ReceiveHandlers[i].TransportType.Name)
        break;
}
receiveLocation.ReceiveHandler = explorer.ReceiveHandlers[i];
receiveLocation.Address = "http://mycomputer/samplepath/sampleservice";
receiveLocation.ReceivePipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruReceive"];
receiveLocation.TransportType = explorer.ProtocolTypes["WCF-CustomIsolated"];
receiveLocation.TransportTypeData = transportConfigData;
// Save
explorer.SaveChanges();

Consulte también

Publicación de servicios WCF con los adaptadores de recepción WCF aislados
Administrar hosts de BizTalk e instancias de host
Cómo cambiar contraseñas y cuentas de servicio
Instalación de certificados para los adaptadores de WCF
Especificación del cuerpo del mensaje para los adaptadores de WCF
Configuración del adaptador de WCF-CustomIsolated
Cómo crear una aplicación afiliada
<comportamiento> de <endpointBehaviors>
comportamiento> de enlaces<de serviceBehaviors><<>