Kontrollera dina Windowstjänster
Förord
Du kan både grafiskt och med hjälp av kod kontrollera dina tjänster (dvs stop, start osv) genom att köra mot "Service Controll Manager" (SCM) vilket är den hanteraren du hittar i Windows. Dock finns det situationer då då vill göra mer än att starta och stoppa. Denna artikel beskriver hur du kan använda metoden OnCustomCommand som är en standard metod då du skapar en tjänst i Visual Studio.Innehåll
Det du behöver för att lätt kunna hänga på i denna artikel är Visual Studio och en eller fler färdiga Windows tjänster. Om du behöver hjälp med att sätta upp en tjänst rekommenderar jag denna länk: codeguru. Koden är i VB.NET.
Har du inte metoden OnCustomCommand skriven i din tjänstklass så ska den se ut ungefär så här i C#:
Det du nu vill göra är att komma åt den här metoden genom att skicka commands, eller integers som du sedan kan använda för att göra olika saker.
Öppna ett nytt projekt i Visual Studio (exempelvis Windows Application) och skapa en knapp. Knapptryckningen ska resultera att en integer skickas till OnCustomCommand metoden på din tjänst. Koden för detta kan exempelvis se ut så här:
Först kommer en servicecontroller att skapas där localhost tilldelas samt att vi talar om att tjänsten MyService ska användas. Vi använder ExecuteCommand för att skicka en integer, i detta fall 128. Notera att du kan endast skicka integers mellan 128 och 256! Glöm inte: using System.ServiceProcess;
Detta ska räcka för att OnCustomCommand ska få din integer 128. Det du nu kan göra är att kontrollera vilka integers som kommer in och utföra olika saker.
Det som skiljer från att köra mot SCM är att du kan anropa egna metoder i din kod, vilket ger dig möjlighet att utföra mer än att stoppa och stanna!
Jag hoppas denna artikel har bidragit till ett nytt och effektivt sätt att kontrollera dina tjänster. Vid frågor får du gärna kontaka mig.
Tveka inte heller att titta in på min blogger då och då. Den fylls med alla möjliga godbitar inom IT. Min Blogger
/Magnus Flisberg
Har du inte metoden OnCustomCommand skriven i din tjänstklass så ska den se ut ungefär så här i C#:
protected override void OnCustomCommand(int command)
{
}
Det du nu vill göra är att komma åt den här metoden genom att skicka commands, eller integers som du sedan kan använda för att göra olika saker.
Öppna ett nytt projekt i Visual Studio (exempelvis Windows Application) och skapa en knapp. Knapptryckningen ska resultera att en integer skickas till OnCustomCommand metoden på din tjänst. Koden för detta kan exempelvis se ut så här:
private void button1_Click(object sender, EventArgs e)
{
try
{
serviceController1 = new ServiceController();
serviceController1.MachineName = ".";
serviceController1.ServiceName = "MyService";
serviceController1.ExecuteCommand(128);
}
catch (Exception ex)
{
label1.Text = "Error: " + ex.Message;
}
}
Först kommer en servicecontroller att skapas där localhost tilldelas samt att vi talar om att tjänsten MyService ska användas. Vi använder ExecuteCommand för att skicka en integer, i detta fall 128. Notera att du kan endast skicka integers mellan 128 och 256! Glöm inte: using System.ServiceProcess;
Detta ska räcka för att OnCustomCommand ska få din integer 128. Det du nu kan göra är att kontrollera vilka integers som kommer in och utföra olika saker.
Det som skiljer från att köra mot SCM är att du kan anropa egna metoder i din kod, vilket ger dig möjlighet att utföra mer än att stoppa och stanna!
Jag hoppas denna artikel har bidragit till ett nytt och effektivt sätt att kontrollera dina tjänster. Vid frågor får du gärna kontaka mig.
Tveka inte heller att titta in på min blogger då och då. Den fylls med alla möjliga godbitar inom IT. Min Blogger
/Magnus Flisberg
0 Kommentarer