Megosztás a következőn keresztül:


A teljes szolgáltatásminta

Az ebben a szakaszban található témakörök teljes körű szolgáltatásmintát alkotnak:

A szolgáltatás felépítése

Az alábbi eljárás azt ismerteti, hogyan hozhatja létre a szolgáltatást, és regisztrálhatja az eseményüzenet DLL-ét.

A szolgáltatás létrehozása és az eseményüzenet DLL- regisztrálása

  1. Az üzenet DLL-t a Sample.mc fájlból a következő lépések alkalmazásával készítsük el:

    1. mc -U sample.mc
    2. rc -r sample.rc
    3. link -dll -noentry -out:sample.dll sample.res
  2. Svc.exe, SvcConfig.exeés SvcControl.exe összeállítása Svc.cpp, SvcConfig.cpp és SvcControl.cpp alapján.

  3. Hozza létre a beállításkulcsot HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application\SvcName, és adja hozzá a következő beállításjegyzék-értékeket ehhez a kulcshoz.

    Érték Típus Leírás
    EventMessageFile = dll_path REG_SZ Az eseménynaplóba a szolgáltatás által írható karakterláncokat tartalmazó, csak erőforrás DLL elérési útja.
    TypesSupported = 0x00000007 REG_DWORD A támogatott eseménytípusokat meghatározó bitmaszk. Az 0x000000007 érték azt jelzi, hogy minden típus támogatott.

     

A szolgáltatás tesztelése

Az alábbi eljárás a szolgáltatás tesztelését ismerteti.

A szolgáltatás tesztelése

  1. A Vezérlőpulton indítsa el a Services alkalmazást. (A következő lépésekben az F5 billentyűvel frissítse a megjelenítést egy olyan parancs végrehajtása után, amely módosítja a Services alkalmazás adatait.)

  2. Futtassa a következő parancsot a szolgáltatás telepítéséhez:

    svc telepítése

    A szolgáltatás a "Szolgáltatás sikeresen telepítve" szöveget írja a konzolra, ha a művelet sikeres, vagy ha más hibaüzenet jelenik meg.

    Ha a szolgáltatás telepítése sikeres, a szolgáltatás megjelenik a Services alkalmazásban. Vegye figyelembe, hogy név "SvcName" értékre van állítva, Leírás és állapot üresek, indítási típus pedig "Manuális" értékre van állítva.

  3. Futtassa a következő parancsot a szolgáltatás elindításához:

    svccontrol indítsa el az SvcName

    Ha a művelet sikeres, a szolgáltatásvezérlő program a következőt írja: "Szolgáltatás indítása függőben..." majd a konzolon a "Szolgáltatás sikeresen elindult". Ellenkező esetben a program hibaüzenetet ír a konzolra.

    Ha a szolgáltatás sikeresen elindul, Állapot "Started" (Indítás) értékre van állítva. A ServiceMain függvény kódját az SCM hajtja végre. Hiba esetén a szolgáltatás hibaüzenetet ír az eseménynaplóba. Ez az üzenet tartalmazza a sikertelen függvény nevét és a hiba esetén visszaadott hibakódot.

  4. Futtassa a következő parancsot a szolgáltatás leírásának frissítéséhez:

    svcconfig az SvcName leírását

    A szolgáltatáskonfigurációs program a "Szolgáltatás leírása sikeresen frissítve" szöveget írja a konzolra, ha a művelet sikeres, vagy ha más hibaüzenet jelenik meg.

    Ha a frissítés sikeres, Leírás a következőre van állítva: "Ez egy tesztleírás".

  5. Futtassa a következő parancsot a szolgáltatáskonfiguráció lekérdezéséhez:

    svcconfig lekérdezés SvcName

    A szolgáltatáskonfigurációs program a szolgáltatáskonfigurációs adatokat a konzolra írja, ha a művelet sikeres, vagy ha más hibaüzenet jelenik meg.

  6. Futtassa a következő parancsot a szolgáltatás DACL-jének módosításához:

    svccontrol dacl SvcName

    A szolgáltatáskonfigurációs program a "Service DACL sikeres frissítése" szöveget írja a konzolra, ha a művelet sikeres, vagy ellenkező esetben hibaüzenet jelenik meg.

  7. Futtassa a következő parancsot a szolgáltatás letiltásához:

    svcconfig kikapcsolja SvcName

    A szolgáltatáskonfigurációs program a "Szolgáltatás sikeresen le van tiltva" szöveget írja a konzolra, ha a művelet sikeres, vagy ha másként hibaüzenet jelenik meg.

    Ha a szolgáltatás le van tiltva, indítási típus "Letiltva" értékre van állítva.

  8. Futtassa a következő parancsot a szolgáltatás engedélyezéséhez:

    svcconfig engedélyezze az SvcName

    A szolgáltatáskonfigurációs program "A szolgáltatás sikeresen engedélyezve" szöveget írja a konzolra, ha a művelet sikeres, vagy ha másként hibaüzenet jelenik meg.

    Ha a szolgáltatás sikeresen engedélyezve van, indítási típus "Manuális" értékre van állítva.

  9. Futtassa a következő parancsot a szolgáltatás leállításához:

    svccontrol leállítja az SvcName

    Ha a művelet sikeres, a szolgáltatásvezérlő program a következőt írja: "Szolgáltatás leállítása függőben..." majd "A szolgáltatás sikeresen leállt" lehetőséget a konzolon. Ellenkező esetben a program hibaüzenetet ír a konzolra.

    Ha a szolgáltatás sikeresen leáll, Állapot üres.

    Ha a szolgáltatás leáll, a szolgáltatásvezérlő program egy hibaüzenetet ír az eseménynaplóba, amely tartalmazza a sikertelen függvény nevét és a hiba esetén visszaadott hibakódot.

  10. Futtassa a következő parancsot a szolgáltatás törléséhez:

    svcconfig törölje az SvcName

    A szolgáltatáskonfigurációs program a "Szolgáltatás sikeresen törölve" szöveget írja a konzolra, ha a művelet sikeres, vagy ha más hibaüzenet jelenik meg.

    Ha a szolgáltatás törlése sikeresen megtörtént, az már nem jelenik meg a Services alkalmazásban. (Vegye figyelembe, hogy ha olyan szolgáltatást próbál törölni, amely nem áll le, a művelet sikeres, de indítási típus "Letiltva" értékre van állítva, és a szolgáltatásbejegyzés a rendszer újraindításakor vagy a szolgáltatás Task Managerrel történő leállításakor törlődik.)

Szolgáltatások használata