Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Como se depura un servicio para windows?????

Iniciado por lauri, 20 de Julio de 2006, 04:37:46 PM

« anterior - próximo »

lauri

Muchas gracias Liso, una de las mejores respuestas que he obtenido en este foro, pero al final he optado por el sistema tradicional, voy escribiendo en un fichero la traza y creo ya saber donde falla.

Me falla cuando se acepta una conexion de solicitud pendiente exacatamente en

Socket sockToClient = tcpListener.AcceptSocket();

y claro pues el cliente no se conecta
               
if( sockToClient.Connected)

pero mi rallada total es porque cuando es proceso si lo hace y con el servicio no.

En el OnStar creamos el hilo y lo ponemos  en marcha, y en el OnStop lo matamos y el resto del codigo es igual en el servicio que en el proceso???

joooooo¡¡¡¡ en teoria deberia funcionar

Liso

Primero de nada,  y sobre el fallo... estooo, más información, please?.

en que lo estas haciendo c#¿?


Ale, ya nos diras algo.

De todas maneras, mira esto:
http://www.aspfree.com/c/a/C-Sharp/Creating-a-Windows-Service-with-C-Sharp-continued/1/
-

Liso^TLOTB

Eadem Mutata Resurgo

www.tlotb.org

[EX3]

Cita de: "vincent"Es que [EX3] está puteao pq no le mandas una foto tuya...  :P
Me cachis, me has pillado :P

No en serio, mi punto de vista o forma de pensar respecto a este tema no lo aplico a la ligera (o a voleo o de forma discrimitaoria como malamente te habras hecho idea) aunque donde si lo añado como simple consejo y no como imposicion por el bien de todos los usuarios, tanto el que pregunta y esta en vias de aprender, como el que responde y regala su tiempo en ello, es en el foro de programacion que administro junto a un compañero, para prueba un boton.
Citar2.3. Antes de plantear una duda en el foro tomaros un minuto y buscar primero por vuestra cuenta. Muchas dudas que planteáis están ya resueltas en el foro o la solución esta planteada en la Guía de Recursos. Para ello utilizad el buscador del foro. Otro consejo es que también busquéis por Internet, Google os puede ayudar a encontrar multitud de soluciones a vuestras dudas.

Y vuelvo a decirte, Lauri, no se si es tu caso, quizas te has tirado varios dias buscando la solucion y segun mi punto de vista tendrias sobradamente ganada la ayuda desinteresada en cualquier foro, pero si es el caso contrario y no te has tomado un minimo de tiempo en buscar la solucion creo en ese caso que no he alegado nada contra ti ni mucho menos creo que te haya faltado al respeto, simplemente te explique el por que a veces la gente en los foros de consulta saltan con Google como arma arrojadiza o por defensa.

Lo dicho, sin acritud, y tal como dice Sync, tanto tu como cualquier otro seguis teniendo derecho a seguir preguntando que siempre habra alguien que responda.

Cita de: "lauri"Espero en un futuro no muy lejano ex3,(cuando ya sepa un monton que no queda muxo por cierto jejeje), que no se de el caso contrario, pero vamos que yo no sere como algunos de vosotros y contestare a todo el mundo, pregunte lo que pregunte :wink:
Genial, te animo a que participes y compartas tus conocimientos con los demas, incluido yo, en la Guia de Recursos de CanalVisualBasic.net :wink:

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

lauri

Cita de: "zupervaca"
System.Console.WriteLine("lo que quieras");

Debes de tener la ventana ouput visible para verlo, si no te sale nada prueba a ponerlo en el constructor del servicio, si ves algo es que no has inicializado el servicio.

Para depurar el servicio vete al menu Debug->Attach process, el servicio debe de estar ejecutado.

Editado: Se me olvidaba, solo como aclaracion, si por algun casual no has inicializado el servicio te deberia dar un mensaje de error al cabo de un tiempo, ademas en la lista de procesos desde Debug->Attach deberia de salirte en gris el nombre de tu servicio.

Buenas en primer lugar, haber Zupervaca, me voy al menu depurar, luego a procesos y ahi lo que tengo que asociar es el ejecutable de mi servicio, si no he entendido mal tiene que estar en ejecucion.

Bien pues me sale en gris como tu dices y el boton de asociar esta deshabilitado , ??????? entonces ...........

pd: muxas gracias por lo del boton voy a tener suerte me ha quedado super claro con dibujitos y todo(ya sabeis que una imagen...........), por si cuela haber si me puedes explicar esto de los servicios igual de bien y clarito con dibujitos y todos   :wink:

un saludo laura

lauri

Cita de: "[EX3"]



Genial, te animo a que participes y compartas tus conocimientos con los demas, incluido yo, en la Guia de Recursos de CanalVisualBasic.net :wink:

Salu2...

Pero bueno EX3, pero como se te ocurre darme un link a otro foro , para llenarlo de preguntas, como era ehhhhh ......... elementales jejeje, que no que es broma,

un saludo laura

zupervaca

Si sale grisao es que no has instalado el servicio, pasate por esta web en español que me parece que lo explican todo: http://www.elguille.info/NET/dotnet/serviciosWindows.htm

lauri

Cita de: "Liso"Primero de nada,  y sobre el fallo... estooo, más información, please?.

en que lo estas haciendo c#¿?


Ale, ya nos diras algo.

De todas maneras, mira esto:
http://www.aspfree.com/c/a/C-Sharp/Creating-a-Windows-Service-with-C-Sharp-continued/1/

Buenas Liso, esque he estado unos dias de relax,
bien pues haber o a ver, no se, en efecto el lenguaje que estoy utilizando es c# como bien has dicho

Fallo no se lo que sera, pero mi gran gran gran problema esque tengo una aplicacion cliente servidor que me funciona perfecta cuando no es servicio (que creo que no tiene mucho misterio pasarlo a servicio quiero decir),  bien pues cojo el codigo del servidor y lo hago servicio , pues a la hora de que el servidor acepte la conexion

"Socket sockToClient = tcpListener.AcceptSocket();

if( sockToClient.Connected )"

me dice que nanai

aqui es donde el cliente se intenta conectar,

tcpSocket=new TcpClient("127.0.0.1",9050);

y es cuando me salta la excepcion y me dice

"Excepción no controlada del tipo 'System.Net.Sockets.SocketException' en system.dll

Información adicional: No se ha podido establecer conexión ya que el equipo de destino ha denegado activamente dicha conexión"

¿hay que dar algun tipo de permisos especiales cuando es servicio?, esque no entiendo porque cuando es aplicacion de consola se conecta y cuando es servicio no?????????????????

Gracias un saludo laura

zupervaca

Mira ver desde una ventana de ms-dos con el comando netstat si esta a la escucha el puerto del servidor, sigo pensando que el problema es que no esta funcionando realmente el servicio, es que ese error te lo dice tambien si no se puede conectar o el puerto en el servidor no esta a la escucha, es decir, no se a abierto.

Editado: Para que no te salga un mensaje ilegible, es decir, lo del system.dll, captura la excepcion al intentar conectar con el try y el catch e imprime el error que te da.

lauri

Cita de: "zupervaca"Si sale grisao es que no has instalado el servicio, pasate por esta web en español que me parece que lo explican todo: http://www.elguille.info/NET/dotnet/serviciosWindows.htm

Si que lo tengo instalado  (te refieres a ejecutar installutil nombreservicio.exe), ademas si no no me apereceria en lo de administracion de equipos y no podria iniciarlo ,no?

el link que me has dao es donde saque lo poco que se, que aunque os creais que no busco en internet ¿como voy a hacer las cosas si no?

pero ahi no me dice nada de depurar un servicio para windows.(vamos de como poner puntos de interrupcion y eso )

bueno pues gracias una vez mas

un saludo laura

zupervaca

El link te lo puse para que sepas como instalar el servicio, no para saber como depurarlo :wink:

lauri

Cita de: "zupervaca"Mira ver desde una ventana de ms-dos con el comando netstat si esta a la escucha el puerto del servidor, sigo pensando que el problema es que no esta funcionando realmente el servicio, es que ese error te lo dice tambien si no se puede conectar o el puerto en el servidor no esta a la escucha, es decir, no se a abierto.

Editado: Para que no te salga un mensaje ilegible, es decir, lo del system.dll, captura la excepcion al intentar conectar con el try y el catch e imprime el error que te da.

pues llevabas razon y es porque no esta escuchando por el puerto ese, lo he escrito en un fichero como me has dicho y me dices

"System.InvalidOperationException: No está en escucha. Llame al método Start(). at System.Net.Sockets.TcpListener.AcceptSocket() at WriterSample2.Server.IoThreadProc() in c:\documents and settings\escritorio\writersample2\writersample2.cs:line 308"

con el netstat /n/a he visto que esta escuchando cuando lo ejecuto como aplicacion consola , pero como servicio ni aparece el puerto 9050 que es el que utilizo

como puedo ver si esta funcionando el servicio realmente???

un saludo y gracias de nuevo

zupervaca

Si esta funcionando lo deberias de ver desde al propio administrador de tareas, si no tambien podrias verlo desde "Panel de control"->"Herramientas administrativas"->Servicios, en uno de estos dos debe de salir por obligacion y como ultimo desde el menu del .net debug->attach process.
Te aconsejo que intentes crear un servicio sencillo sin meterle el servidor de consola que has hecho, cuando logres ver el servicio ejecutandose yo me pondria al lio gordo entonces, en la web que te puse explican como hacer paso a paso todo el percal.

lauri

Muchas gracias Zupervaca de nuevo, voy a optar por  hacer lo que me dices y me voy a hacer un servicio sencillo para probar, ya te contare vale jejejej

un saludo laura

Liso

Nas, a todos, ayer no respondí pq estaba de vacaciones ( si un martes, si os parece extraño, preguntarselo a la Rita Barberà ).

Es posible que estés intentando inicializar las cosas fuera del metodo start?.

No puedo ayudarte mucho pq estoy un "poco" liado :P, pero echaré un ojo a lo que dices.

Aps, una pequeña reflexion:

try
{
}catch
{
}finally
{
};
-

Liso^TLOTB

Eadem Mutata Resurgo

www.tlotb.org

lauri

Hola liso no entiendo lo de la pequeña reflexion ?? :lol:






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.