Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] servicio windows con c#

Estas en el tema de servicio windows con c# en el foro de C/C++ en Foros del Web. Buenas. Estoy haciendo un servicio windows con c#, este servicio lo que va hacer es un envio de email, cada 24h debe de pasar el ...
  #1 (permalink)  
Antiguo 01/06/2013, 06:44
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
servicio windows con c#

Buenas.

Estoy haciendo un servicio windows con c#, este servicio lo que va hacer es un envio de email, cada 24h debe de pasar el servicio.

El script lo tengo echo en php porque debe de pasar por base de datos, este mismo script hace el envio del email.

Lo que no se es como llamar a este script php desde c# ni ponerle el tiempo....

ayudadme, gracias.
  #2 (permalink)  
Antiguo 01/06/2013, 08:20
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: servicio windows con c#

Antes de nada, yo no tengo ni idea de c# :)

El php está en tu maquina? Es decir, puedes lanzarlo con ShellExecute o el equivalente de c#? (googleando sale que es Process.start()). Si es asi no tienes ningun problema, simplemente llamas al ejecutable php con el argumento de la ruta al script php que quieres usar.

Si el ejecutable php y el script estan en un servidor puedes simular un GET tal como harias desde el navegador para que el servidor ejecute el script con el interprete de php. Con sockets es muy simple hacerlo y aun mas si solo quieres lanzarlo (es decir no esperas reenvio de datos). Ademas supongo que c# tendrá algo parecido a wininet de c, que es una libreria de trabajo en redes, que para cosas normales es mas que suficiente. Si no has usado nunca sockets puedes comenzar con esto porque es muy facil y veras 'como funciona la red'. Ten en cuenta que aun cuando el php este en tu propia maquina si tienes un servidor instalado y el ambito del servidor incluye el script tambien puedes ejecutarlo con sockets, enviando un get de ese php a tu propio servidor.

Saludos
vosk
  #3 (permalink)  
Antiguo 01/06/2013, 11:53
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: servicio windows con c#

a ver, consegui hacer lo del tiempo...

lo que no consigo es invocar al php.

mi linea de codigo es esta

Código:
System.Diagnostics.Process.Start(@"C:\xampp\php\php.exe", @"prueba.php");
Pero no hace nada... el scrip pruba.php conecta a base de datos e inserta en base de datos un linea. Este script funciona pues lo ejecute con apache.
  #4 (permalink)  
Antiguo 01/06/2013, 12:10
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: servicio windows con c#

prueba.php está en el mismo directorio que php.exe? Si no es asi deberas darle la ruta completa; ten en cuenta que cuando trabajas a traves del servidor ese por defecto usa el directorio de servicio como raiz, pero al llamar a php le indica la ruta absoluta, de lo contrario como sabe php donde buscar el archivo?

Saludos
vosk
  #5 (permalink)  
Antiguo 01/06/2013, 12:26
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: servicio windows con c#

Le puse las rutas absolutas y tampoco lanza el php. no se que puede ser....

probe hacer esto


Código:
                string path = @"C:\log.txt";

                TextWriter tw = new StreamWriter(path, true);
                tw.WriteLine("A fecha de : " + DateTime.Now.ToString() + ", Intervalo: " + t.Interval.ToString());
                tw.Close();
abrir un fichero y escribir una linea con la fecha y lo hace correctamente pero ejecutar mi script php no quiere
  #6 (permalink)  
Antiguo 01/06/2013, 12:43
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: servicio windows con c#

En C# hay alguna forma de redireccionar el stderr? Para ir descartando; repito que no tengo ni idea de c#, siento no ser de mas ayuda.

Saludos
vosk
  #7 (permalink)  
Antiguo 01/06/2013, 18:33
nfo
 
Fecha de Ingreso: octubre-2008
Ubicación: EsPaCiO TiEmPo
Mensajes: 408
Antigüedad: 15 años, 6 meses
Puntos: 5
Respuesta: servicio windows con c#

Vale ya lo he resuelto,

Etiquetas: servicio, windows
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:06.