No hay conexión client/server.Excepcion remoting

30/09/2004 - 16:53 por pepe perez | Informe spam
Hola a todos!!!
estoy creando un cliente servidor remting y estoy teniendo problemas ya
que, tengo una solución con tres proyectos (el cliente, el servidor y el
objeto remoto)
Mi cliente es:
using System;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using Remoto;

namespace Remoto
{
public class ValidaClient
{
[STAThread]
public static void Main()
{
ChannelServices.RegisterChannel (new TcpClientChannel());
Validador val = (Validador) Activator.GetObject
(typeof(Validador),"tcp://localhost:4242/Valida");
System.Console.WriteLine (val.Valida());
}
}
}
El servidor es:
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
namespace Remoto
{
public class ValidaServer
{
[STAThread]
public static void Main ()
{
// instantiate the channel object
TcpServerChannel tc = new TcpServerChannel (4242);
ChannelServices.RegisterChannel (tc);
RemotingConfiguration.RegisterWellKnownServiceType (typeof(Validador),
"Valida",WellKnownObjectMode.SingleCall);
System.Console.WriteLine ("Servidor arrancado, press Enter.");
System.Console.ReadLine();
}
}
}
Y el objeto remoto es;
using System;
namespace Remoto
{
public class Validador: MarshalByRefObject
{
public Validador()
{
System.Console.WriteLine ("constructor de Validador.");
}
public string Valida()
{

System.Console.WriteLine ("Metodo Valida()");
return "Validado realizado";
}
}
}

y la excepcion que se genera es:
Información adicional: No se ha podido establecer conexión ya que el
equipo de destino ha denegado activamente dicha conexión

en la línea del cliente: System.Console.WriteLine (val.Valida());
¿Sabe alguien por que se produce y cual podría ser la solución?
Muchas gracias.




*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!
 

Leer las respuestas

#1 Pedro Luna Montalvo, MVP
30/09/2004 - 22:37 | Informe spam
Saludos, como tu bien indicas, son tres proyectos los que tienes en la
solucion, pero ¿cual de los proyectos es el que esta marcado para iniciarse
cuando empieces la depuracion??

Lo que necesitas es que los tres proyectos inicien en modo depuracion, y
para ello deberas ir a las propiedades de la solucion, y en donde dice
"Proyecto de Inicio", seleccionar "Proyecto de inicio múltiples", y para
todos tus proyectos escoger: "Iniciar"

Otro problema que puedes tener es la sincronizacion de que el servidor ya
este listo, cuando el cliente esta iniciando. Si tus aplicaciones son de
consola, ubica un Console.ReadLine() al inicio de todos ellos, esto te
permite que tu indiques el orden enque se inicien.

Saludos, y cuentame si te funciono.
Pedro Luna, MVP
Gye, Ecu

"pepe perez" escribió en el mensaje
news:
Hola a todos!!!
estoy creando un cliente servidor remting y estoy teniendo problemas ya
que, tengo una solución con tres proyectos (el cliente, el servidor y el
objeto remoto)
Mi cliente es:
using System;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using Remoto;

namespace Remoto
{
public class ValidaClient
{
[STAThread]
public static void Main()
{
ChannelServices.RegisterChannel (new TcpClientChannel());
Validador val = (Validador) Activator.GetObject
(typeof(Validador),"tcp://localhost:4242/Valida");
System.Console.WriteLine (val.Valida());
}
}
}
El servidor es:
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
namespace Remoto
{
public class ValidaServer
{
[STAThread]
public static void Main ()
{
// instantiate the channel object
TcpServerChannel tc = new TcpServerChannel (4242);
ChannelServices.RegisterChannel (tc);
RemotingConfiguration.RegisterWellKnownServiceType (typeof(Validador),
"Valida",WellKnownObjectMode.SingleCall);
System.Console.WriteLine ("Servidor arrancado, press Enter.");
System.Console.ReadLine();
}
}
}
Y el objeto remoto es;
using System;
namespace Remoto
{
public class Validador: MarshalByRefObject
{
public Validador()
{
System.Console.WriteLine ("constructor de Validador.");
}
public string Valida()
{

System.Console.WriteLine ("Metodo Valida()");
return "Validado realizado";
}
}
}

y la excepcion que se genera es:
Información adicional: No se ha podido establecer conexión ya que el
equipo de destino ha denegado activamente dicha conexión

en la línea del cliente: System.Console.WriteLine (val.Valida());
¿Sabe alguien por que se produce y cual podría ser la solución?
Muchas gracias.




*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!

Preguntas similares