Cómo: Generar una aplicación cliente
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 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.
Nota: |
---|
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
Continuando desde Cómo: Generar una aplicación host, cree un nuevo directorio en
remoting
llamadoclient
. 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 directorioremoting\client
. El nombre de archivo debería seguir el modelo de app-name.exe.config. En este caso, se denominaclient.exe.config
. El siguiente archivo de configuración le indica al sistema remoto que la información de tipo para el objeto remotoRemotableType
se puede encontrar en el ensambladoRemotableType
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.
Nota: 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.
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 deRemotableType
y llame a su métodoSayHello
. Guarde la aplicación cliente comoClient.cs
oClient.vb
en el directorioremoting\client
.Nota: 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()); }
Copie el ensamblado RemotableType.dll de
remoting\Type
enremoting\client
.Nota: Una pregunta común llegado este punto es: ¿"Cómo reconozco que se llama al objeto remoto si estoy copiando el ensamblado en el cliente?" Y este es el motivo por el cual añadimos la llamada a
Console.WriteLine
en el métodoRemotableType.SayHello()
. Si se llama al objeto remotoWriteLine
se produce en el proceso del agente de escucha, si noWriteLine
se produce en el proceso del cliente.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
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
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!
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());
}
}
Consulte 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
Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.