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.
En el ejemplo de transporte se muestra cómo configurar un enlace personalizado con varios elementos de codificación de mensajes y transporte. Un enlace personalizado se define mediante una lista ordenada de elementos de enlace discretos.
Nota:
El procedimiento de instalación y las instrucciones de compilación de este ejemplo se encuentran al final de este tema.
Este ejemplo se basa en el autohospedado y se ha modificado para configurar tres puntos de conexión para admitir transportes HTTP, TCP y NamedPipe con enlaces personalizados. La configuración del cliente se modificó de forma similar y el código de cliente cambió para comunicarse con cada uno de los tres puntos de conexión.
En el ejemplo se muestra cómo configurar un enlace personalizado que admita una codificación de mensajes y transporte determinada. Esto se logra configurando un transporte y una codificación de mensajes para el binding
elemento . El orden de los elementos de enlace es importante para definir un enlace personalizado, ya que cada uno representa una capa en la pila del canal (consulte Enlaces personalizados). En este ejemplo se configuran tres enlaces personalizados: un transporte HTTP con codificación de texto, un transporte TCP con codificación de texto y un transporte NamedPipe con una codificación binaria.
La configuración del servicio define los enlaces personalizados de la siguiente manera:
<bindings>
<customBinding>
<binding name="HttpBinding" >
<textMessageEncoding
messageVersion="Soap12Addressing10"/>
<httpTransport />
</binding>
<binding name="TcpBinding" >
<textMessageEncoding />
<tcpTransport />
</binding>
<binding name="NamedPipeBinding" >
<binaryMessageEncoding />
<namedPipeTransport />
</binding>
</customBinding>
</bindings>
Al ejecutar el ejemplo, las solicitudes de operación y las respuestas se muestran en la ventana del servicio y de la consola del cliente. El cliente se comunica con cada uno de los tres puntos de conexión, accediendo primero a HTTP, luego TCP y finalmente NamedPipe. Presione ENTRAR en cada ventana de consola para apagar el servicio y el cliente.
El namedPipeTransport
enlace no admite operaciones de máquina a máquina. Solo se usa para la comunicación en la misma máquina. Por lo tanto, al ejecutar el ejemplo en un escenario entre máquinas, comente las siguientes líneas en el archivo de código de cliente:
CalculatorClient client = new CalculatorClient("default");
Console.WriteLine("Communicate with named pipe endpoint.");
// Call operations.
DoCalculations(client);
//Closing the client gracefully closes the connection and cleans up resources
client.Close();
Dim client As New CalculatorClient("default")
Console.WriteLine("Communicate with named pipe endpoint.")
' call operations
DoCalculations(client)
'Closing the client gracefully closes the connection and cleans up resources
client.Close()
Nota:
Si usa Svcutil.exe para volver a generar la configuración de este ejemplo, asegúrese de modificar el nombre del punto de conexión en la configuración de cliente para que coincida con el código de cliente.
Para configurar, compilar y ejecutar el ejemplo
Asegúrese de que ha realizado el procedimiento de instalación única para los ejemplos de Windows Communication Foundation.
Para compilar la edición de .NET de C#, C++o Visual Basic de la solución, siga las instrucciones de Creación de ejemplos de Windows Communication Foundation.
Para ejecutar el ejemplo en una configuración de una máquina única o entre máquinas, siga las instrucciones de Ejecución de los ejemplos de Windows Communication Foundation.