vytvoření služby Windows v VB.NET
prostředí:. Net, Visual Basic
Úvod
chcete napsat aplikaci, která neustále monitoruje některé soubory, vytváří protokol nebo cokoli jiného a která běží neustále na pozadí, zatímco stroj je zaneprázdněn něčím jiným. Nejlepší způsob, jak toho dosáhnout, bylo spustit aplikaci Windows nepřetržitě nebo v pravidelném intervalu s použitím plánovače systému Windows. Ale byla tu jedna velká nevýhoda: někdo se musel přihlásit do systému, aby spustil tuto aplikaci.
to již není problém, protože nejlepší způsob, jak to udělat, je vytvořit službu Windows pro Windows 2000/Windows NT.
co je služba Windows (dříve nazývaná služba NT)?
základní funkcí služby Windows je spuštění aplikace na pozadí. Několik věcí, které je odlišují od aplikace Windows, je to, že služba Windows se spustí dříve, než se uživatel přihlásí do systému (pokud byl nastaven tak, aby začal při spuštění). Službu lze nastavit tak, že vyžaduje, aby ji uživatel spustil ručně.
služba Windows má také svůj vlastní proces; proto běží velmi efektivně. Služba Windows obvykle nebude mít uživatelské rozhraní z jednoduchého důvodu, že ji lze spustit, i když nikdo není přihlášen do systému. To není pravidlo, stále můžete mít službu Windows s uživatelským rozhraním.
v systému Windows 2000 můžete zobrazit všechny služby spuštěné v počítači otevřením ovládacího panelu, nástrojů pro správu a klepnutím na tlačítko služby.
vytvoření služby Windows v VB.NET
před VB.NET, vytvoření služby Windows bylo hodně práce. Museli jste použít nějaký postup na úrovni systému, který nebyl příliš snadný, ale díky VB.NET to se stalo velmi snadným. Nyní se naučíme, jak vytvořit službu Windows.
měli byste vědět pár věcí, než se ponoříme. Služba Windows není k dispozici ve Windows 95, 98 nebo ME. Ke spuštění služeb musíte mít Windows NT nebo Windows 2000.
výhodou použití. NET je, že rámec zahrnuje všechny třídy. To nám pomůže vytvořit, nainstalovat a ovládat službu Windows.
otevřete Visual Studio .NET, vytvořte nový projekt služby Windows, který zavoláme MyService, a poté klikněte na OK.
přidejte ovládací prvek časovače z panelu nástrojů na kartě komponenty. V okně vlastností Timer1 změňte vlastnost Interval na 10000, Což je 10 sekund.
zdrojový kód
poklepáním na ovládací prvek Timer1 otevřete okno kódu pro Timer1_Elapsed a zadejte následující kód. (Tento kód se provádí každých 10 sekund.)
Dim MyLog As New EventLog() ' create a new event log ' Check if the the Event Log Exists If Not MyLog.SourceExists("MyService") Then MyLog.CreateEventSource("MyService", "Myservice Log") ' Create Log End If MyLog.Source = "MyService" ' Write to the Log MyLog.WriteEntry("MyService Log", "This is log on " & _ CStr(TimeOfDay), _ EventLogEntryType.Information)
do postupu OnStart zadejte následující kód. (Tento postup se nazývá při spuštění služby, která povolí časovač.)
Timer1.Enabled = True
a zadejte následující kód v postupu OnStop. (Tento postup se nazývá při zastavení služby, která vypne časovač.)
Timer1.Enabled = False
naše aplikace je nyní připravena, ale ještě je třeba udělat několik věcí, než se pohneme kupředu. Když sestavíme tuto aplikaci, vytvořený spustitelný soubor není aplikací systému Windows; proto jej nemůžete jen kliknout a spustit. Musí být nainstalován jako služba, ale nebojte se; nemusíme to dělat ručně. VB.Net má možnost přidat instalační program do našeho programu a poté použít nástroj k instalaci služby.
přidání instalátoru do projektu
otevřete Service1.okno návrhu vb a klepněte pravým tlačítkem myši a poté vyberte možnost Přidat instalační program. Tím se přidá instalační projekt, ProjectInstaller.vb, se dvěma ovládacími prvky, ServiceProcessInstaller1 a ServiceInstaller1, v našem stávajícím projektu.
vyberte Ovládací prvek ServiceInstaller1 a otevřete okno vlastností. Změňte vlastnosti ServiceName a DisplayName na MyService. (Toto je název, který chcete zobrazit v seznamu služeb v systému Windows služby.)
vyberte ovládací prvek ServiceProcessInstaller1 a otevřete okno vlastností. Změňte vlastnost účtu na Místnísystému. (To je třeba specifikovat, protože to musíme spustit na našem místním počítači.)
nyní je čas vytvořit aplikaci a vytvořit spustitelný soubor. V nabídce sestavení vyberte možnost vytvořit řešení a vytvořte spustitelný soubor s pokyny k instalaci služby.
instalace služby
Chcete-li nainstalovat tuto službu, musíme k instalaci služby Windows použít program InstallUtil, což je nástroj.Net. Najdete to ve složce C:\WINNT\Microsoft.NET\Framework\v1.0.3705. (to se může lišit v počítači, v závislosti na verzi, kterou používáte.)
Alternativně můžete spustit příkazové okno. Net výběrem možnosti Start, Programy, Microsoft Visual Studio. Net, Visual Studio. net Tools, Visual Studio.Net příkazový řádek. Tím se nastaví všechny požadované cesty pro vás.
do tohoto okna zadejte následující příkaz: InstallUtil C:\tgol\Myservice\Bin\Myservice.exe. (Toto je cesta pro spustitelný soubor služby, kterou jsme právě vytvořili. Pamatuj, VB.NET vytvořil spustitelný soubor ve složce Bin pod složkou projektu. Ujistěte se, že jste to změnili na spustitelnou cestu.) Podívejte se na zprávu a přihlaste se, abyste se ujistili, že je služba správně nainstalována.
spuštění služby
spuštění služby a spuštění služby jsou dvě různé věci. Když nainstalujeme službu s InstallUtil, nyní provozujeme službu, ale ještě ji musíme spustit. Chcete-li službu zobrazit a spustit, otevřete Ovládací panely. Otevřete Nástroje pro správu, klikněte na služby, vyhledejte službu MyService a klepněte pravým tlačítkem myši a vyberte Start pro spuštění této služby.
nyní naše služba začala. Otevřete prohlížeč událostí z nástrojů pro správu a kliknutím na protokol aplikace zobrazíte protokoly vytvořené službou (MyService) každých 10 sekund. (Pokud nevidíte žádné protokoly, klepněte na tlačítko Obnovit . Budete muset udržovat osvěžení, abyste viděli nejnovější protokoly událostí.
zastavení služby
otevřete Ovládací panely, otevřete Nástroje pro správu, klikněte na Služby, klepněte pravým tlačítkem myši na MyService a vyberte Stop pro zastavení služby.
odinstalování služby
tento postup je podobný instalaci služby, ale nyní spustíme parametr InstallUtil s / U, který odinstaluje službu:
InstallUtil /U C:\tgol\Myservice\Bin\Myservice.exe (nebo spustitelná cesta v počítači). Podívejte se na zprávu a potvrďte, že služba je správně odinstalována.
tipy
- zastavte službu a zavřete okno služby před instalací / odinstalováním služby.
- vždy odinstalujte/nainstalujte, pokud provedete nějaké změny v aplikaci služby.
- zkuste se vyhnout uživatelskému rozhraní, vstupům a msgboxu v servisní aplikaci.
- Otevřete ProjectInstaller.VB, vyberte ServiceInstaller1 control a otevřete okno vlastností. Chcete-li službu spustit automaticky, změňte vlastnost StartType na automatickou.
závěr
služba Windows je často přehlížena. Použijte službu Windows namísto standardní aplikace, pokud musíte něco sledovat nebo spravovat na pozadí. Jedinou nevýhodou je postup instalace, ale vsadím se, že při výběru služby Windows oproti aplikacím se systémem Windows Scheduler existuje více pozitivních aspektů než negativních.