Cómo: Generar una aplicación cliente

Este tema es específico de una tecnología heredada que se mantiene para la compatibilidad con versiones anteriores con aplicaciones existentes y no se recomienda para nuevo desarrollo. Las aplicaciones distribuidas se deberían desarrollar utilizando  Windows Communication Foundation (WCF).

Para generar un cliente del tipo remoto definido en Cómo: Generar un tipo de objeto utilizable de forma remota y hospedado por la aplicación creada en Cómo: Generar una aplicación host, su aplicación se debe registrar como un cliente para ese objeto remoto y a continuación, debe invocarlo como si éste estuviera en el dominio de aplicación del cliente. El sistema .NET Remoting intercepta las llamadas de su cliente, las reenvía al objeto remoto y devuelve los resultados a su cliente. El procedimiento siguiente describe cómo generar un cliente remoto básico.

y6dc64f2.note(es-es,VS.100).gifNota:
Vea Cómo: Compilar y ejecutar una aplicación remota básica para obtener instrucciones completas sobre cómo generar y ejecutar este ejemplo.

Para generar un cliente remoto básico

  1. Continuando desde Cómo: Generar una aplicación host, cree un nuevo directorio en remoting llamado client. Cree un archivo de configuración para la aplicación cliente tal como se muestra en el siguiente código y guarde el archivo en el directorio remoting\client. El nombre de archivo debería seguir el modelo de app-name.exe.config. En este caso, se denomina client.exe.config. El siguiente archivo de configuración le indica al sistema remoto que la información de tipo para el objeto remoto RemotableType se puede encontrar en el ensamblado RemotableType y el objeto se encuentra en https://localhost:8989/RemotableType.rem.

    <configuration>
       <system.runtime.remoting>
          <application>
             <client>
                <wellknown 
                   type="RemotableType, RemotableType"
                   url="https://localhost:8989/RemotableType.rem"
                />
             </client>
          </application>
       </system.runtime.remoting>
    </configuration>
    

    Para obtener detalles sobre el atributo URL de este archivo de configuración, vea Direcciones URL de activación. Si desea ejecutar esta aplicación a través de una red, debe reemplazar “host local” en la configuración del cliente por el nombre del equipo remoto.

    y6dc64f2.note(es-es,VS.100).gifNota:
    Aunque en el archivo de configuración precedente solamente hay algunos valores, la mayoría de los problemas al utilizar .NET Remoting se producen porque algunos de estos valores no coinciden con los valores de configuración de las aplicaciones del cliente. Resulta fácil escribir un nombre de forma errónea, olvidar un puerto o descuidar un atributo. Si tiene problemas con su aplicación remota, compruebe primero sus valores de configuración.

  2. Cree un nuevo archivo de origen en el idioma elegido. En el método principal, llame RemotingConfiguration.Configurey proporcione el nombre del archivo de configuración del cliente (client.exe.config). Luego, cree instancias de una instancia de RemotableType y llame a su método SayHello. Guarde la aplicación cliente como Client.cs o Client.vb en el directorio remoting\client.

    y6dc64f2.note(es-es,VS.100).gifNota:
    La aplicación cliente no debería guardarse en el mismo directorio que la aplicación Listener.exe. En caso de que la guarde, no puede estar seguro de recibir y utilizar una referencia remota, puesto que el ensamblado y la resolución de tipo pueden producirse cuando las aplicaciones están en el mismo directorio.

       Public Shared Sub Main()
          RemotingConfiguration.Configure("Client.exe.config")
          Dim remoteObject As New RemotableType()
          Console.WriteLine(remoteObject.SayHello())
       End Sub 'Main
    
       public static void Main(){
          RemotingConfiguration.Configure("Client.exe.config");
          RemotableType remoteObject = new RemotableType();
          Console.WriteLine(remoteObject.SayHello());
       }
    
  3. Copie el ensamblado RemotableType.dll de remoting\Type en remoting\client.

    y6dc64f2.note(es-es,VS.100).gifNota:
    Una pregunta común en este punto es "¿Cómo sé que se llama al objeto remoto si estoy copiando el ensamblado en el cliente?" Este es exactamente el motivo por el que se agregó la llamada a Console.WriteLine en el método RemotableType.SayHello(). Si se llama al objeto remoto WriteLine se produce en el proceso del agente de escucha, si no WriteLine se produce en el proceso del cliente.

  4. Compile la aplicación cliente escribiendo el comando siguiente en el directorio remoting\client:

    vbc /r:RemotableType.dll Client.vb
    
    csc /noconfig /r:RemotableType.dll Client.cs
    
  5. Abra un máximo de dos símbolos del sistema. En uno, vaya al directorio remoting\listener y ejecute listener.exe. En el otro, vaya al directorio remoting\client y ejecute client.exe. El parámetro de confirmación del cliente se debería parecer a éste:

    C:\tmp\Remoting\client>client 
    Hello, world 
    
  6. El parámetro de confirmación del agente de escucha se debería parecer a éste:

    C:\tmp\Remoting\listener>listener
    Listening for requests. Press Enter to exit...
    RemotableType.SayHello() was called!
    
  7. Puede ver por el resultado del agente de escucha que recibió una llamada a RemotableType.SayHello().

Ejemplo

' Client.vb 
Imports System
Imports System.Runtime.Remoting

Public Class Client
   Public Shared Sub Main()
      RemotingConfiguration.Configure("Client.exe.config")
      Dim remoteObject As New RemotableType()
      Console.WriteLine(remoteObject.SayHello())
   End Sub 'Main
End Class 'Client
// Client.cs 
using System;
using System.Runtime.Remoting;

public class Client{

   public static void Main(){
      RemotingConfiguration.Configure("Client.exe.config");
      RemotableType remoteObject = new RemotableType();
      Console.WriteLine(remoteObject.SayHello());
   }
}

Vea también

Tareas

Cómo: Generar una aplicación host

Referencia

Esquema de configuración de la comunicación remota

Conceptos

Configuración de aplicaciones remotas
Activación del servidor

Otros recursos

Generar una aplicación básica de comunicación remota de .NET Framework

Fecha de compilación: 2010-02-13