cannot
start service from the command line or a debugger. A Windows Services Must
First be Installed(Using InstallUtil.exe) and then started with the
ServerExplorer,Windows Services Administrator Tool or the NET START command.
Merhaba Sevgili Okurlar,
Windows Servisler Visual Studio'dan F5 bastığımızda start olabilir durumda olmuyor, Windows Service olarak attach etmemiz gerekiyor. Bu durum da geliştirme yaparken bizi oldukça zorlayan bir durum.
Bunun için ilk olarak Servis ismi .cs uzantılı dosyada eğer servis ismini değiştirmediyseniz Service1.cs 'de onDebug metodu eklemeliyiz ve OnStart(null) ile başlamasını sağlamalıyız.
using System;
using System.Runtime.Remoting;
namespace MyService.Service
{
public class Service : ServiceControl
{
public bool
Start(HostControl hostControl)
{
StartRemoting();
return true;
}
public bool
Stop(HostControl hostControl)
{
return true;
}
static void
StartRemoting()
{
ImageManager p = new ImageManager();
string configFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
RemotingConfiguration.Configure(configFile, false);
}
public void
onDebug()
{
OnStart(null);
}
}
}
Daha sonra servisin Program.cs 'sine aşağıdaki kodları ekleyerek debug 'da nasıl release modda nasıl davranacağını belirleyebiliriz.
using System.Collections.Generic;
using System.ServiceProcess;
using System.Text;
namespace MyService.Service
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
static void Main()
{
#if (!DEBUG)
ServiceBase[] ServicesToRun;
ServicesToRun = new ServiceBase[]
{
new MyService()
};
ServiceBase.Run(ServicesToRun);
#else
MyService myServ = new MyService();
myServ.OnDebug();
System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
#endif
}
}
}
Visual Studio'dan start diyip servisin debugger' den başladığını görebiliriz.
Sevgili Stan Lee'nin anısına ...
Sağlıkla kalın,
Huzurla Kalın.
Huzurla Kalın.
Hiç yorum yok:
Yorum Gönder