Hola que tal, pues bien he estado desarrollando una aplicación en C#, que implementa servidores SSL y por lo tanto Threads, la aplicación en la máquina de desarrollo (WinXP Pro, VS2008) funciona de maravilla tanto debug como release, sin embargo cuando la ejecuto en la máquina donde quedara instalada (Windows Server 2003 R2, .net Framework 3.5 SP1) simplemente se muere, sin dar aviso ni nada por el estilo (ni siquiera registra excepciones en los logs). Ahora al momento de revisar los logs, me doy cuenta de que al parecer al inicializar un thread ocurre un error al leer los parametros del mismo, ya que se corta cuando se trata de leer alguno de ellos.
Asi inicio el thread:
ListeningThread
= new Thread
(new ParameterizedThreadStart
(ServerThread
)); ListeningThread.Name = "ListeningThread";
ListeningThread.IsBackground = true;
ThreadList.Add(ListeningThread);
myLog.Add("{ThID:{" + Thread.CurrentThread.ManagedThreadId.ToString() + "}Thread de servidor lanzado");
string Datos = ListeningIP.ToString() + ":" + Port.ToString();
ListeningThread.Start((object)Datos);
Y este es el thread que ejecuto:
public void ServerThread(object EndPoint) //EndPoint = IP:Puerto (en string)
{
// Crea un socket TCP/IP (IPv4) y escucha por conexiones.
try
{
string Parametros = (string)EndPoint;
myLog.Add("--ThID:{" + Thread.CurrentThread.ManagedThreadId.ToString() + "}Datos recibidos en el thread: " + (string)EndPoint);
string[] Datos = Parametros.Split(':');
if (Datos.Length < 2)
throw new Exception
("Error en parametros"); System.Net.IPAddress LocalIP = System.Net.IPAddress.Parse(Datos[0]);
int LocalPort = Int32.Parse(Datos[1]);
myLog.Add("--ThID:{" + Thread.CurrentThread.ManagedThreadId.ToString() + "}--Entrando a Thread de Servidor--");
myLog.Add("--ThID:{" + Thread.CurrentThread.ManagedThreadId.ToString() + "}--IP para escuchar: " + LocalIP.ToString() + ":" + LocalPort.ToString());
TcpListener listener
= new TcpListener
(LocalIP, LocalPort
); myLog.Add("--ThID:{" + Thread.CurrentThread.ManagedThreadId.ToString() + "} Datos Listener" + listener.LocalEndpoint.ToString());//+ "--" + listener.Server.LocalEndPoint.ToString());
listener.Start();
myLog.Add("--ThID:{" + Thread.CurrentThread.ManagedThreadId.ToString() + "}TCP Listener creado y funcionando");
do
{
myLog.Add("--ThID:{" + Thread.CurrentThread.ManagedThreadId.ToString() + "}Esperando por clientes");
TcpClient client = listener.AcceptTcpClient();
Alguien tiene ideas de que es lo que pueda estar pasando? A mi ya se me están acabando las ideas
. De antemano gracias.