Я создал базовый тестовый сервис в C #, установил его в Windows 7, а затем попытался запустить.
using System.ServiceProcess;
public class MyService : ServiceBase
{
static void Main()
{
System.ServiceProcess.ServiceBase.Run( new MyService() );
}
protected override void OnStart( string[] args )
{
bool failed = true;
// Do stuff...
// Oops, we failed! Time to stop!
if( failed ) {
base.Stop();
return;
}
base.OnStart( args );
}
}
В случае сбоя, да, я вижу окно сообщения, которое вы описываете.Это окно сообщения не является частью вашего сервиса - окно Сервисов показывает это.Если бы вы открыли командную строку администратора и набрали следующее:
net start Scv1
Тогда вы увидите текстовое сообщение об ошибке вместо окна сообщения.
В любом случае вызапускается программа, которая просит SCM запустить ваш сервис.Ваш сервис не запустился.Эта ошибка сообщается программе.Программа решила отобразить сообщение об ошибке для информирования пользователя.Это вне вашего контроля.