Compartir a través de


Generar una aplicación cliente

Para generar un cliente del tipo remoto definido en Generar un tipo de uso remoto y albergado por la aplicación creada en Generar una aplicación host, la aplicación debe registrarse como cliente de dicho objeto y, a continuación, invocarlo como si estuviese dentro del dominio de aplicación del cliente. El sistema .NET remoting interceptará las llamadas al cliente, las enviará al objeto remoto y devolverá los resultados al cliente. En el siguiente ejemplo de código, se muestra cómo crear un cliente remoto simple.

' 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.StringMethod())
   End Sub 'Main
End Class 'Client
[C#]
// 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.StringMethod());
   }
}

Para compilar esta clase en un ejecutable de cliente o que realiza las llamadas mediante las herramientas de la línea de comandos incluidas en .NET Framework SDK, guárdela como Client.extensión_de_lenguaje (o utilice otro nombre de archivo, donde la extensión de lenguaje es el lenguaje que desee compilar). Guarde el archivo en el mismo directorio donde guardó una copia de RemotableType.dll que ha generado en el tema Generar un tipo de uso remoto. (Observe que no debería ser el mismo directorio que el de la aplicación Listener.exe. En caso contrario, no sabrá con certeza si recibe y utiliza una referencia remota ya que puede producirse la resolución de ensamblados y tipos cuando las aplicaciones están en el mismo directorio.) En el símbolo del sistema de dicho directorio escriba el siguiente comando:

[Visual Basic]

vbc /r:RemotableType.dll Client.vb

[Visual Basic]

[C#]

csc /noconfig /r:RemotableType.dll Client.cs

[C#]

En este comando, el nombre de archivo es:

[Visual Basic]

Client.vb

[C#]

Client.cs

Como puede ver en este ejemplo, la clase Client debe poder encontrar el archivo Client.exe.config para cargar la configuración de la clase RemotableType. Este archivo debe guardarse en el mismo directorio que el archivo Client.exe; en caso contrario, no se encontrará el archivo de configuración y se iniciará una excepción. En el siguiente ejemplo de código, se muestra el archivo de configuración Client.exe.config de este dominio de aplicación host o de escucha.

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

En este archivo se indica al sistema remoto que la información de tipos para el objeto remoto RemotableType se encuentra en el ensamblado RemotableType, y que este cliente debe intentar crear y utilizar un objeto RemotableType ubicado en https://localhost:8989/RemotableType.rem. Para obtener más información sobre el atributo de dirección URL en este archivo de configuración, vea Activación de direcciones URL. Si desea ejecutar esta aplicación a través de una red, debe reemplazar "localhost" en la configuración del cliente con el nombre del equipo remoto.

Nota   Si bien hay pocos valores en el anterior archivo de configuración, la mayoría de los problemas relacionados con el uso de .NET remoting se producen debido a que algunos de estos valores son incorrectos o no corresponden a los valores de configuración de las aplicaciones de cliente. Es fácil escribir incorrectamente un nombre, olvidar un puerto u omitir un atributo. Si tiene algún problema con la aplicación de interacción remota, compruebe primero los valores de configuración.

Vea también

Generar una aplicación .NET Remoting básica | Configuración | Activación del servidor | Esquema de la configuración de la interacción remota | <wellknown>