Я создаю службу, которая будет редактировать данные данных 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
}
}
При отладке службы очень сложно поймать метод 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, но она также будет работать как служба при ее установке на вашем рабочем сервере...