Avatar billede noerdar-dilling Nybegynder
10. maj 2006 - 16:35 Der er 2 kommentarer

Stop egen service

har følgende kode som eksikverer, men skal herefter stoppe den pågældende service. Den bliver startet af en bat fil men skal stoppe efter udførelsen.

kode:

___________________________________________________________________


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.ServiceProcess;
using System.Text;
using System.Net.Mail;
using System.Timers;

namespace smtpMdRepService
{
    public partial class smtpRepMD : ServiceBase
    {
        public smtpRepMD()
        {



            InitializeComponent();
    if(!System.Diagnostics.EventLog.SourceExists("RepLogSourse"))
    System.Diagnostics.EventLog.CreateEventSource("RepLogSourse",
                                                          "RepLog");

    eventLog1.Source = "RepLogSourse";
    // the event log source by which

    //the application is registered on the computer

    eventLog1.Log = "RepLog";
      }

        protected override void OnStart(string[] args)
        {
            // TODO: Add code here to start your service

            eventLog1.WriteEntry("The Replication of MD service was started without complcations");
            SendEmail();



                    }

        private void SendEmail()
        {
            MailMessage message = new MailMessage();
            message.From = new MailAddress("rep@muhldorff.dk");
            message.To.Add(new MailAddress("support@techbiz.dk"));

            System.DateTime dt = System.DateTime.Now;
            string sdt = dt.ToString("dd--MM-yyyy-hh-min");

            message.Subject = "Rep Ok" + " " + sdt;
            message.Body = "Replikeringen blev udført uden komplikationer";

            message.IsBodyHtml = false;
            message.Priority = MailPriority.Normal;
            SmtpClient mSmtpClient = new SmtpClient();

            mSmtpClient.Host = "mail.techbiz.dk";
            mSmtpClient.Port = 25;

            mSmtpClient.Send(message);

            ServiceController sc = new ServiceController("smtpRepMD");
            sc.Stop();


           
        }



        protected override void OnStop()
        {
            // TODO: Add code here to perform any tear-down necessary to stop your service.
       


            eventLog1.WriteEntry("The service smtpRepMD has stopped");

       
        }



        protected override void OnContinue()
        {
            eventLog1.WriteEntry("The service started again!");
        }

        public void stopService()
        {

            ServiceController sc = new ServiceController("smtpRepMD");
            sc.Stop();
         
        }





        }

    }
Avatar billede noerdar-dilling Nybegynder
10. maj 2006 - 16:36 #1
Jeg har kaldt det direkte sendMail() metoden og bruger ikke min stopService() metode
Avatar billede noerdar-dilling Nybegynder
10. maj 2006 - 16:52 #2
Ellers har jeg forsøt mig med denne metode jeg kalder efter funtionen

        public void stopService()
        {

            ServiceController[] services = ServiceController.GetServices();

            for (int i = 0; i < services.Length; i++)
            {

                if (services[i].DisplayName == "smtpRepMD")
                {
               
                    ServiceController sc = new ServiceController(services[i].DisplayName);

                    if (sc.Status == ServiceControllerStatus.Running)
                    {
                        sc.Stop();
                    }
                    if (sc.Status == ServiceControllerStatus.Stopped)
                    {
                        sc.Start();
                    }

                }

            }
        }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester