powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Создание службы Windows - служба не ответила своевременно
11 сообщений из 11, страница 1 из 1
Создание службы Windows - служба не ответила своевременно
    #39577090
Фотография mraklbrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.

Служба:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace WindowsServiceTest1
{
    public partial class Service1 : ServiceBase
    {
        public Service1()
        {
            InitializeComponent();
            this.CanStop = true;
            this.CanPauseAndContinue = true;
            this.AutoLog = false;
            this.CanHandlePowerEvent = true;
            this.CanShutdown = true;
        }

        protected override void OnStart(string[] args)
        {
            File.AppendAllText("D:\\555667777.txt", "start");
        }

        protected override void OnStop()
        {
            File.AppendAllText("D:\\555667777.txt", "stop");
        }

        protected override void OnPause()
        {
            File.AppendAllText("D:\\555667777.txt", "pause");
        }

        protected override void OnContinue()
        {
            File.AppendAllText("D:\\555667777.txt", "continue");
        }


    }
}



Инсталлятор:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration.Install;
using System.Linq;
using System.Threading.Tasks;
using System.ServiceProcess;
using System.Configuration.Install;

namespace WindowsServiceTest1
{
    [RunInstaller(true)]
    public partial class Installer1 : System.Configuration.Install.Installer
    {
        ServiceInstaller serviceInstaller;
        ServiceProcessInstaller processInstaller;

        public Installer1()
        {
            InitializeComponent();

            serviceInstaller = new ServiceInstaller();
            processInstaller = new ServiceProcessInstaller();

            processInstaller.Account = ServiceAccount.LocalSystem;
            serviceInstaller.StartType = ServiceStartMode.Automatic;
            serviceInstaller.ServiceName = "TestService1";
            Installers.Add(processInstaller);
            Installers.Add(serviceInstaller);
        }


    }
}



Устанавливаю через installutil.exe. Устанавливается без проблем.
При запуске службы (через Диспетчер задач->Службы) выдаёт: Служба не ответила на запрос своевременно, не запускается.
...
Рейтинг: 0 / 0
Создание службы Windows - служба не ответила своевременно
    #39577109
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mraklbrw,
Найди в сети рабочую демку службы.
Установи её средствами винды.
...
Рейтинг: 0 / 0
Создание службы Windows - служба не ответила своевременно
    #39577336
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
mraklbrw,

И что там должно запускаться? Где метод Main?
...
Рейтинг: 0 / 0
Создание службы Windows - служба не ответила своевременно
    #39577569
Фотография mraklbrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это служба. Вместо Main - OnStart.
...
Рейтинг: 0 / 0
Создание службы Windows - служба не ответила своевременно
    #39577634
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
mraklbrwЭто служба. Вместо Main - OnStart.
Вы уверены, что событие сработает само по себе?
...
Рейтинг: 0 / 0
Создание службы Windows - служба не ответила своевременно
    #39577662
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
http://www.realcoding.net/article/view/2690 Теперь, когда сервис написан, нужно сделать некоторую рутинную работу, чтобы иметь именно сервис. Все что нам нужно сделать для этого – это создать совокупность объектов ServiceBase и просто вызвать метод Run базового класса ServiceBase. Добавьте следующий код к методу Main объекта Application. Следующий фрагмент кода показывает все необходимое для запуска сервиса.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
static void Main(string[] args)
{
// создадим массив сервисов
ServiceBase[] servicesToRun;

// чтобы создать новый образец нового сервиса,
// просто добавьте его к списку сервисов, 
// указанных в конструкторе массива ServiceBase
servicesToRun = new ServiceBase[] { new SpadesAdminService() };

// запустим все созданные сервисы.
// Вообще-то, это не запустит сервисы, но
// зарегистрирует их в Service Control Manager
ServiceBase.Run( servicesToRun );
}
...
Рейтинг: 0 / 0
Создание службы Windows - служба не ответила своевременно
    #39577905
Фотография mraklbrw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
Program.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Threading.Tasks;

namespace WindowsServiceTest1
{
    static class Program
    {

        static void Main()
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[]
            {
                new Service1()
            };
            ServiceBase.Run(ServicesToRun);
        }


    }
}
...
Рейтинг: 0 / 0
Создание службы Windows - служба не ответила своевременно
    #39580717
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Давно использую topshelf
2. нет кода самого сервиса, что запускать то?
...
Рейтинг: 0 / 0
Создание службы Windows - служба не ответила своевременно
    #39595311
Massa52
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,
У topshelf есть одна неприятность - сервис иногда не запускается автоматом при перезагрузке компа.
...
Рейтинг: 0 / 0
Создание службы Windows - служба не ответила своевременно
    #39595469
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Massa52Arm79,
У topshelf есть одна неприятность - сервис иногда не запускается автоматом при перезагрузке компа.
Ни разу такого не было. Кроме того, в настройках сервиса можно установить несколько попыток запуска при ошибках.

Ну и грамотное логирование помогает определить причину ошибки. Грешите на TopShelf - заведите bug в ихнем трекере
...
Рейтинг: 0 / 0
Создание службы Windows - служба не ответила своевременно
    #39595984
Massa52
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79,
До логгирования не доходит, так как служба не стартует.
Вроде нашли решение - отложенный старт, появившийся с .Net 4.
Но все равно иногда это случается и приходится заходить на комп удаленно и стартовать вручную.
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
            HostFactory.Run(host =>
            {
                host.Service<AlarmIpService>(s =>
                {
                    s.ConstructUsing(CreateService);
                    s.WhenStarted(CallStart);
                    s.WhenStopped(CallStop);
                });
                host.RunAsLocalSystem(); // use the local system account to run as
                host.StartAutomatically();
                //  Automatic (Delayed) -- only available on .NET 4.0 or later
               [color=red] host.StartAutomaticallyDelayed();[/color]                //host.UseNlog();

                host.SetDescription("???????????????????????????????????"); // description seen in services control
                host.SetDisplayName("????????????"); // friendly name seen in control panell
                host.SetServiceName("?????????????"); // used with things like net stop and net start
            });


...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Создание службы Windows - служба не ответила своевременно
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]