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

Pues lo dicho ya he "echo" mi servicio para windows pero ahora toca lo  mas importantes, las pruebas (bueno no se si sera lo mas importate), y claro pues no funciona.

Entonces me debe de dar alguna excepcion o error y el caso que no tengo ni idea donde es el fallo, vamos que no puedo poner puntos de interrupcion para poder depurar el codigo al ser un servicio.

¿sabeis alguna forma de depurarlo para ver donde falla?


un saludo y gracias laura

Diferencial

En estos casos, create un fichero y ves escribiendo lo que estas haciendo dentro del programa. Despues le echas un vistazo y sabras donde te peta.
PARA TENER COSAS QUE NUNCA HAS TENIDO, TENDRÁS QUE HACER COSAS QUE NUNCA HAS HECHO.

lauri

Si eso estoy haciendo, lo que pasa que no me escribe nada , vamos que  por no escribir ni me crea el fichero y  sin embargo es lo primero que hago en el metodo OnStar()

?no existe ninguna forma de poner puntos de interrupcion o algo similiar ¿???

Muchas gracias laura

Zaelsius

¿Qué te impide usar el depurador del IDE? Si es lo que yo me pienso, y no sabes cómo convertir tu aplicación en un servicio en tiempo de ejecución, entonces debes usar la función RegisterServiceProcess del API de Win32.

MSDN: http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/win9x/95func_3t0z.asp

Tutoriales: Google

Código fuente de ejemplo(C++): http://www.lemonteam.com/html/sniffx/sniffx.htm

Cómo hacer llamadas al API Win32 desde C#, Google. Y de nuevo repito que estas cosas se buscan en internet antes de venir aquí a por la respuesta fácil.

@Diferencial : *echas* un vistazo

lauri

el depurador del ide?? que fino,
te pongo al dia

1. mi aplicacion ya esta convertida en un servicio ahora no me funciona y quiero poner un punto de interrupcion, y al ser un servicio no me deja

2. Del resto no se de que me estas hablando

3. Copio textualemnte       "       General Programadores
En este foro los programadores podréis plantear vuestras dudas, solicitar ayuda, exponer vuestras opiniones... sobre temas que no tengan cabida en ningún otro apartado.

  "
un saludo y gracias laura

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.

Zaelsius

Añadir que he metido la gamba porque la función que he citado ya no existe en Windows 2K/XP, pero obviamente los servicios sí se pueden depurar..

senior wapo

No he tocado C# en la vida, pero metiendo lo que buscas en google sale:

http://msdn2.microsoft.com/es-es/library/7a50syb3.aspx

Tienes a la izquierda además una lista de articulos sobre servicios.

Google es nuestro amigo.

[EX3]

Cita de: "lauri"3. Copio textualemnte       "       General Programadores
En este foro los programadores podréis plantear vuestras dudas, solicitar ayuda, exponer vuestras opiniones... sobre temas que no tengan cabida en ningún otro apartado.
Quizas no sera tu caso o quizas si pero explicame donde pone ahi que la gente puede acudir a que les resuelvan las dudas sin tratar ellos mismos de buscar la solucion previamente? Creo que a veces la gente confunde los foros de consulta con los foros de servicio tecnico donde puedes venir a que te resuelvan la vida sin mover un dedo y eso me parece ya pasarse de la raya en muchos casos.

Aqui, y tal como lo veo yo al menos, estamos para compartir conocimientos y para resolver dudas a la gente cuando se han tomado tiempo tratando de resolverlas ellos mismos, y repito, no se con certeza si es tu caso o no, pero al menos ten claro por que en ciertas ocasiones recomendamos buscar primero en Google antes de acudir al foro.

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

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

lauri

YO creo que a vosotros lo que os pasa (no todos claro es darme mucha caña, no se que motivos personales tendreis (con las mujeres digo ) o no se lo que sera pero que vamos preguntas como las mias hay mogollon en el foro, y no veo que les pongais post  estupidos ,

buscar en google claro que se hasta ahi llego tan cortita no soy , aunque sigo buscando el boton de voy a tener suerte jejeje  , pero como ya he dicho anteriormente, tres palabras (como las de zupervaca, muchas gracias por cierto) me solucionan un monton de curro,

Añado que voy a seguir preguntando lo que me de la gana jejeje, el que quiera que me conteste y el que no no.

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:



un saludo y laura

jazcks

lo que faltaba, no te escudes en que seas mujer, las respuestas son iguales para todos.

lauri

Bueno venga vale, lo de la mujer lo quito que no venia a cuento, pues algo personal pero hacia mi

un saludete

vincent

Es que [EX3] está puteao pq no le mandas una foto tuya...  :P
Desarrollo en .Net y metodologías http://devnettips.blogspot.com

synchrnzr

Bueno, en vistas de como va evolucionando el post y antes de tener que tirar un post más a la basura, a ver si aclaramos cierto punto:

Los foros están abiertos a todo el mundo y lo único que se pide es que se cumplan unos mínimos de educación para con los demás usuarios. No está prohibido hacer preguntas de nivel elemental. Tampoco está prohibido hacer muuuuchas preguntas de nivel elemental :?

Si creeis que la pregunta es una estupidez y que se puede encontrar fácilmente buscando un poco por internet, no hace falta que os tomeis la molestia de responder: NO es obligatorio :)

sync

Liso

Joder machos, estais un poquito rebotados..., unas cervecitas y respirar hondo.

Bueno, Lauri, el tema de debuggear un service es una putada :P, pero se puede hacer.

Te cuento más o menos la "tecnica", primero create un dummy-service, que lo unico que haga sea Cargar por codigo el servicio que quieres depurar.

Despues arrancas ese servicio y "attacheas" ( RAE perdón ) el debuger del compilador al dummi, y ya puedes depurarlo rollo F10-F11, incluso el onStart.

De todas maneras, comprueba bien tu proceso como proceso y no como servicio. Muchos de los problemas vienen de alli.

Otra cosa es que no se si eso funcionará en .net ( sinceramente me da un poco de repelús hacer un servicio en .net ;) ).

Pero bueno, echale un vistazo a estas dos discusiones a ver si te aclaran algo:

http://groups.google.com/group/microsoft.public.dotnet.languages.csharp/browse_thread/thread/a254315fdd423860/41ea5e27ec357796?lnk=st&q=%22.net%22+%22debugging+a+windows+service%22&rnum=4&hl=en

http://www.codeproject.com/useritems/manc_winservice.asp

Ale, nos vemos.

EDIT:
Anda mira, he encontrado esto para .NET que llama automaticamente al debugger del sistema :)

if ( !System.Diagnostics.Debugger.IsAttached ){
   System.Diagnostics.Debugger.Launch();
   System.Diagnostics.Debugger.Break();
}

Cool.
-

Liso^TLOTB

Eadem Mutata Resurgo

www.tlotb.org






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.