Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 36585|Atsakyti: 3

[ASP.NET] C# yra "Windows" paslauga, kuri reguliariai vykdo užduotis

[Kopijuoti nuorodą]
Paskelbta 2019-04-27 17:56:09 | | | |


Įvadas

Tęsiant ankstesnį straipsnį apie "Windows" užduočių planuoklį, šiame straipsnyje bus įrašytas "Windows" paslaugų kūrimas.
Aplinka ir įrankiai

>"Windows 10" sistema

>VS 2017

SMS žinutė

1: Sukurkite naują sprendimą ir sukurkite "Windows" paslaugą. Pavadinimas yra "WindowsServiceDemo.exe






2: Dukart spustelėkite failą "Service1.cs", dešiniuoju pelės mygtuku spustelėkite tuščią vietą – > pasirinkite "Pridėti diegimo programą".







3: Dviejuose sugeneruotuose komponentuose spustelėkite komponentą "serviceProcessInstaller1" ir ypatybių formoje nustatykite paskyros tipą "Paskyra" į "LocalSystem".





4: Dviejuose sugeneruotuose komponentuose spustelėkite komponentą "serviceInstaller1", ypatybių formoje nustatykite atitinkamas ypatybes ir išsaugokite.




5: Dešiniuoju pelės mygtuku spustelėkite "Service1.cs" – > pasirinkite "Peržiūrėti kodą".






6: Atitinkamu metodu parašykite apdorojimo logiką. OnStart() metodas: nurodo metodą, kuris įvedamas paleidus "Windows" paslaugą. OnStop(): Kaip rodo pavadinimas, tai yra būdas įvesti, kai paslauga sustoja. Galime parašyti laikmatį, kad programa apdorotų logiką įprastų lytinių santykių metu.






7: Sukurkite du užrašų knygelės failus, pavadinkite ir pakeiskite priesagų pavadinimus "Install.bat" ir "Uninstall.bat" atitinkamai Pastaba: Priesagos pavadinimas yra .bat. Įklijuokite jį į projektą. Ir pakeiskite atributą į "Kopijuoti į vietinį".



8: Du failai, kuriuos ką tik sukūrėme, skirti paslaugai įdiegti ir paslaugai pašalinti. Dabar parašykite paketinį kodą į šiuos du failus ir išsaugokite.
Atidarykite failą "Install.bat" ir parašykite šį kodą
Pastaba: "WindowsServiceDemo.exe" yra exe programa ką tik sugeneruota. "AServiceTest" yra "ServiceName", nustatytas "serviceInstaller1" komponente.

Atidarykite failą "Uninstall.bat" ir parašykite šį kodą


9: F6 jį sugeneruoja. Projekto kataloge "bin\Debug". Dešiniuoju pelės mygtuku spustelėkite "Install.bat" – > pasirinkite "Vykdyti kaip administratorius".



Kai paslaugos diegimas bus baigtas. Matome, kad failas "Log.txt" kas 10 sekundžių rašo duomenų eilutę.


Galime pamatyti įdiegtas paslaugas.
Vykdyti – > įveskite "services.msc".



Sustabdykite tarnybą dabar. Dešiniuoju pelės mygtuku spustelėkite "Uninstall.bat" – > pasirinkite "Vykdyti kaip administratorius".



Pašalinus paslaugą. Matome, kad faile "Log.txt" taip pat yra įrašyta duomenų eilutė.



#"Windows" paslaugų derinimas

"Windows" paslaugų negalima paleisti tiesiogiai derinant F5, F10. Taigi, kaip derinti programą, jei yra anomalija?
1: Visų pirma, naudokite administratorių, kad paleistumėte failą "Install.bat" ir leiskite programai paleisti pirmąją.

2: Grįžkite į VS ir meniu juostoje pasirinkite "Derinti" – > pasirinkite "Pridėti prie proceso".





3: Iššokančiojoje formoje pažymėkite "Rodyti visų vartotojų procesus", raskite .exe mūsų sugeneruotą programą ir spustelėkite "Pridėti".




4: Sulaužykite metodo tašką, kad kai jis veikia tam tikrą laiką, jis gali suaktyvinti derinimą.



Epilogas

"Windows" paslaugų derinimas yra labai varginantis, kartais programa parašyta problemoje, o paslauga negali paleisti, todėl ją sunkiau derinti. Paprastai rašant "Windows" paslaugas bus pateikiama konsolės programa. Derinkite jį konsolės programoje ir perkelkite į "Windows" paslaugas. Kitoje temoje bus aprašytas paprastesnis būdas sukurti "Windows" paslaugą.


Pastaba: Abiejų programų paleisti ir pašalinti paketiniai failai turi būti paleisti kaip administratoriai. Priešingu atveju tai bus neteisinga.









Ankstesnis:Bendrieji didžiųjų duomenų dalijimosi algoritmai (taikomosios programos)
Kitą:"Topshelf" naudojimas C# suplanuotoms vykdymo užduotims atlikti
Paskelbta 2019-05-08 10:59:16 |
Ačiū už pasidalinimą, tik laiku, atsiųskite jį man
Paskelbta 2020-06-22 14:04:33 |
Visada pranešti apie šią klaidą
 Savininkas| Paskelbta 2020-09-07 15:21:59 |
awclovelin Publikuota: 2020-6-22 14:04
Visada pranešti apie šią klaidą

Vykdoma komanda neteisinga, ši paslauga neįdiegta. Jei jį diegiate bakstelėdami komandinę eilutę, galite peržiūrėti kitą mano įrašą.
"Topshelf" naudojimas C# suplanuotoms vykdymo užduotims atlikti
https://www.itsvse.com/thread-7503-1-1.html

Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com