OnStart в сервисе приложение не работает

1

Я создаю службу, которая будет редактировать данные данных db me.I хочу запустить Encrypt для connectionString, когда служба запускает/или восстанавливает reuqest, и я не могу поймать OnStart

Что я чувствую неправильно?

Мои занятия

  public class Service1 : IService1
    {

        protected void OnStart(string[] args)
        {
            string stop="";
 //can't get here
 //here Encrypt the section.
 // section.SectionInformation.ProtectSection("DataProtectiond");
        }

        public string GetData(int value)
        {
            //my functions
        }
}
  • 0
    Это служба Windows?
  • 0
    да, этот сервис должен быть на сервере Pc и отправлять данные.
Показать ещё 1 комментарий
Теги:
windows-services

1 ответ

1

При отладке службы очень сложно поймать метод OnStart. Вы не можете запустить службу из Visual Studio и в процессе производства, метод OnStart уже вызывается, прежде чем вы сможете прикрепить свой отладчик. Вы можете сделать следующий код в методе OnStart:

System.Diagnostics.Debugger.Launch()

Появится окно, в котором вы можете выбрать отладчик. Если у вас уже есть решение Visual Studio, вы можете выбрать это, и отладчик будет подключен к вашей службе.

Чтобы "запустить службу" из Visual Studio, вы можете поместить что-то вроде этого в свой Main():

static void Main()
    {
        if (!Environment.UserInteractive)
        {
            // Startup as service. 
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 
            { 
                new MyServices() 
            };
            ServiceBase.Run(ServicesToRun);
        }
        else
        {
           //Start things locally here, 
           //for example the same things you do in the OnStart() method of your service
        }
    }

Теперь вы можете просто запустить программу из Visual Studio, но она также будет работать как служба при ее установке на вашем рабочем сервере...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню