private void EnviarData(Object state) { if (datosCapturados) { try { File.AppendAllText(@"C:\logger.log", "(EVIAR ASISTENCIAS)" + Environment.NewLine); File.AppendAllText(@"C:\logger.log", "Inicio envio de asistencias..." + DateTime.Now + Environment.NewLine); //Genero una request al servidor para hacer un POST de los datos recien guardados var httpWebRequest = (HttpWebRequest)WebRequest.Create(direccion + "asistencias"); httpWebRequest.ContentType = "application/json"; httpWebRequest.Method = "POST"; //Envio los datos var reqStream = httpWebRequest.GetRequestStream(); using (var streamWriter = new StreamWriter(reqStream)) { string json = JsonConvert.SerializeObject(dt); //Convierto los datos de la tabla "dt" a un JSON, descargar la libreria desde nuget (Newtonsoft.Json) y ponerla como referencia streamWriter.Write(json); streamWriter.Flush(); streamWriter.Close(); } var r = httpWebRequest.GetResponse(); if (((HttpWebResponse)r).StatusCode == HttpStatusCode.OK) { foreach (DataRow row in dt.Rows) { File.AppendAllText("AsistanceGral.txt", row[0] + "\t" + row[1] + "\t" + row[2] + Environment.NewLine); } terminalZK.ClearKeeperData(idMaquina); //Borro todos los datos(usuarios y asistencias) del dispositivo File.AppendAllText(@"C:\logger.log", "Envio de asistencias OK " + DateTime.Now + Environment.NewLine); datosCapturados = false; //Reseteo por si falla algun otro metodo timer3.Change(Timeout.Infinite, Timeout.Infinite); } } catch (WebException ex) { File.AppendAllText(@"C:\logger.log", DateTime.Now + " ERROR de Red(enviar data): " + ex.Message + Environment.NewLine + ex.StackTrace + Environment.NewLine); timer3.Change(480000, Timeout.Infinite); //re intento a los 8 minutos } catch (ProtocolViolationException ex) { File.AppendAllText(@"C:\logger.log", DateTime.Now + " ERROR de Red(enviar data): " + ex.Message + Environment.NewLine + ex.StackTrace + Environment.NewLine); timer3.Change(480000, Timeout.Infinite); //re intento a los 8 minutos } catch (Exception ex) { File.AppendAllText(@"C:\logger.log", DateTime.Now + " ERROR POST(enviar data):" + ex.Message + Environment.NewLine); timer3.Change(480000, Timeout.Infinite); //re intento a los 8 minutos } } }