Windows REST API service NET 6-ban

Windows REST API service NET 6-ban
2022-06-27T09:31:26+02:00
2022-06-28T13:41:59+02:00
2022-10-17T03:55:51+02:00
  • Úgy tűnik, az alap sikerült. Nem is kell Worker Service, elég egy NET Web Api egy UseWindowsService kapcsolóval, ahogy a leírásban van és működik.

    Az elérési urlt az appsettings.json-ben lehet megadni (azért nem volt jó először, mert rossz projektbe írtam bele :) )
    Mutasd a teljes hozzászólást!
  • Addig eljutottam, hogy kész a Net Core-os API projekt is. 
    Ez alapján csináltam: Creating a Windows Service with .NET 6
    Beleraktam az UseWindowsService-t is.

    Sikerült is feltelepítenem a Windows Services alá, meg is jelenik fut is.
    Hogyan érem el? :) (úgy értem milyen linket és portot kell megadni a RestApi kliensben, hogy rá tudjak csatlakozni?)

    Köszi!
    Mutasd a teljes hozzászólást!
  • Igazából a 2-es pont van csak meg, mert a minta link ezt tartalmazza csak.
    Tehát minimál API-m még nincs, de azt gyorsan tudom pótolni (lehet Blazor API is?)

    Net Core-os web apit már írtam korábban, az a rész nem tiszta, hogy a Worker Service projekt és a Net Core Web Api projekt hogyan talál egymásra?

    Köszi!
    Mutasd a teljes hozzászólást!
  • Elvileg most ott tartunk, hogy
    1) Visual Studio-ban létrehoztál egy új ASP.NET Core projektet
    2) A link alapján beletetted a Windows service-hez szükséges dolgokat (UseWindowsService és figyelsz a helyes exit code-ra).

    Tehát már van egy .NET 6-ot targetelő ASP.NET Core Minimal API-d. Ezt ha szeretnéd, átalakíthatod MVC-re, de a lényeg az, hogy már most kellene lennie egy endpointnak, amit hívni tudsz.

    Most azt kell csinálni, hogy:
    1) hozzáadsz egy scoped HelloWorldService-t a DI containerhez
    2) bekéred a controllerben ctor injection-t használva, vagy minimal API-val a metódus paramétereként
    3) csinálsz egy /hello route-ot, amiben meghívod a HelloWorldService-t.
    Mutasd a teljes hozzászólást!
  • Végigdaráltam ezt a példát, működik is.
    Innen kellene eljutnom addig, hogy van egy metódus, pl.

    GetHelloWorld(), majd ezt meghívni egy külső kliensből (pl. Insomnia) és json-ben visszaadja az eredményt.

    Ebben tudsz segíteni légyszives, valamiért nem nagyon találtam ilyen netes példát, vagy rosszul kerestem.

    Köszi!
    Mutasd a teljes hozzászólást!
  • Jól hangzik, köszi, kipróbálom.
    Mutasd a teljes hozzászólást!
  • Olvasmány: Create a Windows Service using BackgroundService

    Ahogy elnézem a példát, abszolút semmi akadályát nem látom annak, hogy egy ASP.NET Core alkalmazást hostolj Windows service-ként. Számomra úgy tűnik, hogy ami fontos az az, hogy
    - használd a UseWindowsService-t annak érdekében, hogy az application lifetime-hoz a WindowsServiceLifetime-ot használja a programod
    - az exit code 0-tól eltérő legyen, ha hiba miatt áll le a szoftvered.
    Mutasd a teljes hozzászólást!
  • Sziasztok,

    Korábban több Windows Service által hosztolt WCF szolgáltatást írtam. 
    Hasonlót szeretnék csinálni most is, de már NET 6-ban. Mi a legjobb lehetőség erre jelenleg?

    A követelmények:
     - Window Service host-olja (hozzáférjen rendszer erőforrásokhoz is)
     - Programozási nyelv: C#
     - REST kérésekre fog válaszolni

    Elsősorban "gyári" megoldások érdekelnének.

    Köszönöm!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd