public partial class Homepage : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { FillServiceName(); } }
protected void SqlDataSource1_Selecting(object sender, SqlDataSourceSelectingEventArgs e) {
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { //Label1.Text = DropDownList1.SelectedIndex.ToString(); //Label1.Text = DropDownList1.SelectedIndex.ToString(); } public void ServiceRestart(string nameofservice) { //Get the name of the service from the Web.config // string nameofservice = ConfigurationManager.AppSettings["service1"]; ServiceController sv = new ServiceController(nameofservice);
//Get service timeout from App.Config file int timeinmilliseconds = int.Parse(ConfigurationManager.AppSettings["timeinmilliseconds"].ToString());
try { if (sv.Status.Equals(ServiceControllerStatus.Running) && sv.CanStop) { int ms1 = Environment.TickCount; int ms2; TimeSpan timeout = TimeSpan.FromMilliseconds(timeinmilliseconds); try { sv.Stop(); sv.WaitForStatus(ServiceControllerStatus.Stopped, timeout); //Console.WriteLine("Service " + nameofservice + " stopped"); Label2.Text = "Services " + nameofservice + " stopped"; ms2 = Environment.TickCount; timeout = TimeSpan.FromMilliseconds(timeinmilliseconds - (ms2 - ms1)); } catch { Label2.Text = "Services " + nameofservice + "failed to stoped"; }
try { sv.Start(); Label2.Text = "Services" + nameofservice + "started"; } catch { Label2.Text = "Services" + nameofservice + "failed to start"; } sv.WaitForStatus(ServiceControllerStatus.Running, timeout); //Console.WriteLine("Service " + nameofservice + " started"); //Label2.Text="Services" + nameofservice + "started"; } else { sv.Start(); //Console.WriteLine("Service " + nameofservice + " started"); Label2.Text = "Services" + nameofservice + "started"; } }
catch (Exception e) { //Console.WriteLine("An error has occured: " + e.StackTrace); //Label2.Text = "Services" + nameofservice + "stopped"; Label2.Text = "An error has occured: " + e.Message; //Re-start the service but with a longer timeout period //ServiceRestartAgain(nameofservice);
//Another service public void ServiceRestartAgain(string nameofservice1) { //Get the name of the service from the Web.config //string nameofservice1 = ConfigurationManager.AppSettings["service1"]; ServiceController sv1 = new ServiceController(nameofservice1);
int timeinmilliseconds1 = int.Parse(ConfigurationManager.AppSettings["timeinmilliseconds2"].ToString());
try { if (sv1.Status.Equals(ServiceControllerStatus.Running) && sv1.CanStop) { int ms11 = Environment.TickCount; TimeSpan timeout1 = TimeSpan.FromMilliseconds(timeinmilliseconds1); sv1.Stop(); sv1.WaitForStatus(ServiceControllerStatus.Stopped, timeout1); //Console.WriteLine("Service " + nameofservice1 + " stopped"); Label2.Text="Service " + nameofservice1 + "stopped";
int ms22 = Environment.TickCount; timeout1 = TimeSpan.FromMilliseconds(timeinmilliseconds1 - (ms22 - ms11)); sv1.Start(); sv1.WaitForStatus(ServiceControllerStatus.Running, timeout1); //Console.WriteLine("Service " + nameofservice1 + " started"); Label2.Text="Service " + nameofservice1 + "started"; }
else { sv1.Start(); //Console.WriteLine("Service " + nameofservice1 + " started"); Label2.Text = "Service " + nameofservice1 + " started"; } }
catch (Exception e) { string stacktrace = e.StackTrace; //Console.WriteLine("An error has occured in restarting the service again: " + stacktrace); Label2.Text = e.Message; //Send mail to e-channels support(In the body of the mail put the stacktrace after adding the message. This is for tracking purposes. // MailEChannelsSupport(stacktrace); }
con.Open(); SqlCommand cmd = new SqlCommand("SELECT * FROM Service", con);
cmd.ExecuteNonQuery(); SqlDataAdapter adap = new SqlDataAdapter(cmd); DataSet dats = new DataSet(); adap.Fill(dats); DataTable dt = new DataTable(); dt = dats.Tables[0]; ListItem lstitem = new ListItem(); lstitem = new ListItem(); lstitem.Text = "Select Service"; lstitem.Value = "s"; drpservice.Items.Add(lstitem); foreach (DataRow datR in dt.Rows) { lstitem = new ListItem(); lstitem.Text = datR["Service"].ToString(); lstitem.Value = datR["Service"].ToString(); drpservice.Items.Add(lstitem);
} con.Close(); }//end try catch (Exception ex) {
} }