सही ढंग से प्रतिबिंबित नहीं करती है यदि मेरी सेवा प्रारंभ या बंद हो रही है तो मेरे पास यह कोड पावरहेल स्क्रिप्ट चला रहा है।सेवा नियंत्रक स्थिति वास्तविक सेवा स्थिति
Timer timer1 = new Timer();
ServiceController sc = new ServiceController("MyService");
protected override void OnStart(string[] args)
{
timer1.Elapsed += new ElapsedEventHandler(OnElapsedTime);
timer1.Interval = 10000;
timer1.Enabled = true;
}
private void OnElapsedTime(object source, ElapsedEventArgs e)
{
if ((sc.Status == ServiceControllerStatus.StartPending) || (sc.Status == ServiceControllerStatus.Stopped))
{
StartPs();
}
}
private void StartPs()
{
PSCommand cmd = new PSCommand();
cmd.AddScript(@"C:\windows\security\dard\StSvc.ps1");
PowerShell posh = PowerShell.Create();
posh.Commands = cmd;
posh.Invoke();
}
यह ठीक काम कर रहा है जब मैं cmd शीघ्र लेकिन से मेरी सेवा को मारने भले ही मेरी सेवा और चल रहा है, powershell स्क्रिप्ट ही निष्पादित करने के लिए (यह कंप्यूटर पर एक फ़ाइल संलग्न कर देता है) किसी भी विचार क्यों जारी है?
क्या यह कहना सही होगा कि शक्तियां इस प्रश्न के लिए ऑर्थोगोनल हैं, और * असली * प्रश्न यह है: मेरा 'स्टार्टपेन्डिंग'/'स्टॉप' चेक क्यों सही ढंग से काम नहीं करता है? –
क्या आपने ब्रेकपॉइंट्स को यह देखने के लिए प्रयास किया है कि वास्तव में क्या हो रहा है? –