Configurar un puerto de envío de WCF-NetNamedPipe
El puerto de envío WCF-NetNamedPipe se puede configurar mediante programación o con 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 tiene la propiedad de lectura y escritura TransportTypeData . Esta propiedad acepta una bolsa de propiedades de configuración de puerto de envío WCF-NetNamedPipe con la forma de pareja 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 de puerto de envío WCF-NetNamedPipe, como se indica en la siguiente tabla.
La siguiente tabla enumera las propiedades de configuración que puede establecer en el modelo de objetos del Explorador de BizTalk para puertos de envío WCF-NetNamedPipe.
Nombre de propiedad | Tipo | Descripción |
---|---|---|
Identidad | Blob XML, por ejemplo:<identity> <userPrincipalName value="username@contoso.com" /> </identity> |
Especifique la identidad de servicio que espera este puerto de envío. Esta configuración permite al puerto de envío autenticar el servicio. 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. |
StaticAction | String | 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 del 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, por ejemplo, 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 la operación . Por ejemplo, si esta propiedad se establece en el siguiente formato XML y BTS. La propiedad Operation se establece en Op1, 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 bts. Propiedad Operation en los componentes de canalización. El valor predeterminado es una cadena vacía. |
OpenTimeout | System.TimeSpan | Especificar un valor de marco temporal que indica el intervalo de tiempo proporcionado para que se complete una operación de apertura del canal. Valor predeterminado: 00:01:00 |
SendTimeout | System.TimeSpan | Especificar un valor de marco temporal que indica el intervalo de tiempo proporcionado para que se complete una operación de envío. Si usa un puerto de envío de petición-respuesta, este valor especifica un marco temporal para que se complete la interacción, incluso cuando el servicio devuelva un mensaje grande. Valor predeterminado: 00:01:00 |
CloseTimeout | System.TimeSpan | Especificar un valor de marco temporal que indica el intervalo de tiempo proporcionado para que se complete una operación de cierre del canal. Valor predeterminado: 00:01:00 |
MaxReceivedMessageSize | Entero | Especificar el tamaño máximo, en bytes, para mensajes (con encabezados incluidos) que se pueden recibir a través de la red. El tamaño de los mensajes se limita mediante la cantidad de memoria asignada a cada mensaje. Puede usar esta propiedad para limitar la exposición a ataques por denegación de servicio (DoS). Valor predeterminado: 65536 |
EnableTransaction | Boolean | Especifique si un mensaje se transmite al servicio de destino y se elimina de la base de datos messageBox en un contexto transaccional mediante el protocolo WS-AtomicTransaction . Valor predeterminado: False |
TransactionProtocol | Enumeración - OleTransaction - WS-AtomicTransaction |
Especificar el protocolo de transacción que se usará con este enlace. Valor predeterminado: OleTransaction |
SecurityMode | Enumeración - Ninguno: esto deshabilita la seguridad. - Transporte: - La seguridad se proporciona mediante la seguridad basada en el transporte subyacente. Con este modo es posible controlar el nivel de protección. |
Especificar el tipo de seguridad que se usa. Valor predeterminado: Transporte |
TransportProtectionLevel | Enumeración - Ninguno : sin protección. - Firmar : los mensajes están firmados. - EncryptAndSign : los mensajes están cifrados y firmados. |
Especificar el nivel de protección de la canalización con nombre. Si se firman los mensajes, se reduce el riesgo de que manipulen el mensaje terceros mientras éste se transfiere. El cifrado proporciona privacidad de nivel de datos durante el transporte. Valor predeterminado: EncryptAndSign |
OutboundBodyLocation | 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 de WCF. |
Especifique la selección de datos para el elemento Cuerpo SOAP de los mensajes WCF salientes. 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 saliente. Esta propiedad es necesaria si la propiedad OutboundBodyLocation está establecida en UseTemplate. El valor predeterminado es una cadena vacía. |
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. 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 respecto al elemento secundario inmediato del elemento Body 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 de WCF. |
Especifique la selección de datos para el elemento Cuerpo 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. Esta propiedad sólo es válida para puertos de petición-respuesta. El valor predeterminado es una cadena vacía. |
InboundNodeEncoding | Enumeración - XML - Base64 : codificación base64. - Hexadecimal : codificación hexadecimal. - Cadena : codificación de texto- UTF-8. - XML : los adaptadores de 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 envío WCF-NetNamedPipe 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 |
PropagateFaultMessage | 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). |
Especificar si se enrutan o se suspenden mensajes que han generado errores en el procesamiento de salida. Esta propiedad sólo es válida para puertos de petición-respuesta. Valor predeterminado: True |
Configurar un puerto de envío de WCF-NetNamedPipe con la consola de administración de BizTalk
Se pueden establecer las variables del adaptador de puerto de envío WCF-NetNamedPipe 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-NetNamedPipe, como se indica en la tabla anterior.
Configuración de variables para un puerto de envío de WCF-NetNamedPipe
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-NetNamedPipe para la opción Tipo en la sección Transporte de la pestaña General .
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 WCF-NetNamedPipe , 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-NetNamedPipe. Para obtener más información sobre la pestaña General del cuadro de diálogo Propiedades de transporte WCF-NetNamedPipe , vea la pestaña Propiedades de transporte WCF-NetNamedPipe, Enviar, General en la guía de interfaz de usuario y referencia del espacio de nombres de la API de desarrolladores.
En el cuadro de diálogo Propiedades de transporte WCF-NetNamedPipe , en la pestaña Enlace , configure las propiedades de tiempo de espera y transacción. Para obtener más información sobre la pestaña Enlace del cuadro de diálogo Propiedades de transporte WCF-NetNamedPipe , vea el cuadro de diálogo Propiedades de transporte WCF-NetNamedPipe, pestaña Enviar, Enlace en la guía de interfaz de usuario y referencia del espacio de nombres de la API de desarrolladores.
En el cuadro de diálogo Propiedades de transporte WCF-NetNamedPipe , en la pestaña Seguridad , defina las funcionalidades de seguridad del puerto de envío de WCF-NetNamedPipe. Para obtener más información sobre la pestaña Seguridad del cuadro de diálogo Propiedades de transporte WCF-NetNamedPipe , vea el cuadro de diálogo Propiedades de transporte WCF-NetNamedPipe, Pestaña Enviar, Seguridad en la guía de interfaz de usuario y referencia del espacio de nombres de la API de desarrolladores.
En el cuadro de diálogo Propiedades de transporte WCF-NetNamedPipe , 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 WCF-NetNamedPipe , vea la pestaña Propiedades de transporte WCF-NetNamedPipe, Enviar, Mensajes de la guía de interfaz de usuario y referencia del espacio de nombres de la API de desarrolladores.
Configurar un puerto de envío de WCF-NetNamedPipe mediante programación
Puede usar el siguiente formato para establecer las propiedades:
<CustomProps>
<TransportProtectionLevel vt="8">EncryptAndSign</TransportProtectionLevel>
<TransactionProtocol vt="8">OleTransactions</TransactionProtocol>
<InboundBodyPathExpression vt="8" />
<PropagateFaultMessage vt="11">-1</PropagateFaultMessage>
<CloseTimeout vt="8">00:01:00</CloseTimeout>
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
<StaticAction vt="8">http://www.northwindtraders.com/Service/Operation</StaticAction>
<SendTimeout vt="8">00:01:00</SendTimeout>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<EnableTransaction vt="11">0</EnableTransaction>
<SecurityMode vt="8">Transport</SecurityMode>
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<OpenTimeout vt="8">00:01:00</OpenTimeout>
<OutboundXmlTemplate vt="8"><bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="xml"/></OutboundXmlTemplate>
<MaxReceivedMessageSize vt="3">2097152</MaxReceivedMessageSize>
</CustomProps>
El siguiente fragmento de código muestra la creación de un puerto de envío WCF-NetNamedPipe:
// Use BizTalk Explorer object model to create new WCF-NetNamedPipe 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>
<OpenTimeout vt=""8"">00:01:00</OpenTimeout>
</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-NetNamedPipe"];
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
Propiedades y esquema de propiedades de adaptadores de WCF
Especificación del cuerpo del mensaje para los adaptadores de WCF
Instalación de certificados para los adaptadores de WCF
Configuración del adaptador de WCF-NetNamedPipe
Configuración de puertos de envío dinámico mediante el uso de propiedades de contexto de adaptadores de WCF