none
Inicio rápido de servicio de windows c# RRS feed

  • Pregunta

  • Holaaa!!

    He creado un servicio de windows y tarda aprox 1min 30 seg en empezar a iniciarse. Me gustaría saber si hay alguna forma de hacer que no tarde tanto.

    Tarda ese tiempo cuando se inicia el windows, pero si voy a los Servicios y le inicio yo a mano no tarda nada.

    Si se le puede poner alguna prioridad o algo similar... imagino que primero se iniciarán los propios de windows y luego el resto, pero me parece exagerado que tarde tanto en iniciarse.

    Espero que alguien pueda orientarme o ayudarme...

    Muchas graciasss!!
    jueves, 12 de marzo de 2009 13:58

Todas las respuestas

  • de que otros servicios depende tu servicio?
    desde luego si esta arrancando windows, tu servicio no arrancara en tanto el sistema no haya subido todas las cosas de las que el depende.
    Juan Carlos Ruiz - http://juank.black-byte.com
    jueves, 12 de marzo de 2009 15:13
  • Qué respuesta más rápida!! Muchas graciasss!!

    El servicio lo que hace es suscripbirse a los eventos de ISensLogon e ISensLogon2, a estos concretamente...
    pongo parte del código...
    subCollection = (ICatalogCollection)comAdmin.GetCollection("TransientSubscriptions");  
     
    // Subscribe to SENS events.  
    SubscribeToEvent(subCollection, "DisplayLock", iSensLogon_ID);  
    SubscribeToEvent(subCollection, "DisplayUnlock", iSensLogon_ID);  
    SubscribeToEvent(subCollection, "Logoff", iSensLogon_ID);  
    SubscribeToEvent(subCollection, "Logon", iSensLogon_ID);  
     
     
    //Subscribe to SENS 2 events  
    SubscribeToEvent(subCollection, "PostShell", iSensLogon2_ID);  
     

    He estado mirando, y el OnStart lo hace rápido (10 segundos después del inicio de sesión), pero tarda como 1min 25segundos en empezar la primera suscripción..
    jueves, 12 de marzo de 2009 15:29
  • establece el grupo de carga del servicio, y una vez hecho eso vas  a

     HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder

    y colocas el grupo más arriba... NO TOTALMENTE ARRIBA, pero puedes irlo subiendo de nivel gradualmente hasta que logres los resultados que deseas.

    Juan Carlos Ruiz - http://juank.black-byte.com
    jueves, 12 de marzo de 2009 15:45
  • Y por código no puede hacerse?? o algo similar?? Ya que el servicio se le dará al cliente y él lo instalará, pero no le vamos a decir que haga eso.....

    Gracias nuevamenteee!!
    jueves, 12 de marzo de 2009 15:58
  • He descubierto algo...

    No tarda en iniciarse el servicio, lo que tarda el minuto y pico es la linea 
    subCollection = (ICatalogCollection)comAdmin.GetCollection("TransientSubscriptions");  

    comAdmin es:

    private COMAdminCatalogClass comAdmin = new COMAdminCatalogClass();



    Alguna idea?

    jueves, 12 de marzo de 2009 16:22