
Evgeniy
08.09.2018
12:43:31

Bonart
08.09.2018
12:44:21

Grigoriy
08.09.2018
12:45:50
TopShelf?
Почитал док, но, как тут уже заметили, про коре ничего не нашёл

Bonart
08.09.2018
12:46:58

Google

Grigoriy
08.09.2018
12:47:00
С асп.нет коре всё норм - сервис регистрируется, странички открываются. Скелет готов - надо мясо наращивать

Evgeniy
08.09.2018
12:50:09

Friedrich
08.09.2018
12:50:41
Сервисный режим в ASP.NET Core 2.1 мне не показался достаточным.

Grigoriy
08.09.2018
12:54:17
Да, пока мне непонятно, как стоп и рестарт хэндлить. А топшелф - из девелоп ветки собрать?

Friedrich
08.09.2018
12:54:38
Из нугета бери последний бета-пакет.
https://github.com/ForNeVeR/nightwatch/blob/b059b1094f0bcc13d31916de049a493924402c23/Nightwatch/Nightwatch.fsproj#L23

Grigoriy
08.09.2018
12:54:58
Ок

Friedrich
08.09.2018
12:55:08
Вон та версия точно работает, я тестирую её.
Topshelf.FSharp тоже с ней работает, если чо. Разве что нугет жалуется, что не отмечена совместимость с нетстандартом.

Grigoriy
08.09.2018
12:56:27
Раз уж пошла такая пьянка - я ж всё равно внутри могу асп.нет поднять?

Friedrich
08.09.2018
12:56:41
Внутри чего? Что ты делаешь?

Google

Friedrich
08.09.2018
12:57:53
Как там этот их новый индепендент-хост называется, я опять забыл.
Вот к нему прикручивается сервисный режим. Во всяком случае, я где-то об этом читал; сам не пробовал пока.

Grigoriy
08.09.2018
12:59:09

Friedrich
08.09.2018
12:59:26

Grigoriy
08.09.2018
13:00:33
Делаю шедулер для всякого с веб-интерфейсом

Evgeniy
08.09.2018
13:01:01

Grigoriy
08.09.2018
13:01:31
Его ещё нет :) я же говорю - делаю :) а не - сделал

Evgeniy
08.09.2018
13:01:48
Его и показывай.

Grigoriy
08.09.2018
13:02:43
Он в встс. Рабочий акк

Evgeniy
08.09.2018
13:02:49
Ок.

Grigoriy
08.09.2018
13:03:20

Friedrich
08.09.2018
13:04:21
Давай вместе поищем!

Grigoriy
08.09.2018
13:04:39
Ок.
Пока что оно тайтли каплд с бизнесс-процессами :(

Friedrich
08.09.2018
13:05:42
Итак, эта штука называется GenericHost.

Grigoriy
08.09.2018
13:05:53

Friedrich
08.09.2018
13:06:27
Ща посмотрю мсдн
https://www.stevejgordon.co.uk/running-net-core-generic-host-applications-as-a-windows-service я тебе нашёл статью!
Посаны грят всё должно работать.
@gsomix, может, ну его нахер, этот топшелф? Перепишем на генерик хост?

Google

Friedrich
08.09.2018
13:07:41
Мне не нравится, что топшелф ограничил нас в передаче аргументов.

Grigoriy
08.09.2018
13:07:42

Evgeniy
08.09.2018
13:07:51

Friedrich
08.09.2018
13:08:43
Какое у нас там вообще щас состояние добра? У нас были какие-то незакрытые проблемы с топшелфом?
https://github.com/ForNeVeR/nightwatch/issues/24 похоже, только это.
Лан, неохота пока переписывать, если не видно конкретных проблем.
Я уже забыл, что все проблемы решил и уже смержил :)

Grigoriy
08.09.2018
13:10:07
Нулевая т.е.

Evgeniy
08.09.2018
13:13:29

Grigoriy
08.09.2018
13:15:33

Friedrich
08.09.2018
13:15:49

Grigoriy
08.09.2018
13:16:37
Мне показалось, что для моей задачи достаточно
Но буду копать дальше

Friedrich
08.09.2018
13:24:53
А, хорошо. Я просто решил, что дальше тебе нужна помощь.

Grigoriy
08.09.2018
13:25:31

Roman
08.09.2018
14:06:10
Привет, Лика!

Vlad
08.09.2018
14:32:27

Grigoriy
08.09.2018
14:45:57
Да - кореапп.

Google

Grigoriy
08.09.2018
14:47:34
Честно говоря, я не понял требования и почему не на «большом» фреймворке
но, вот, как-то так

Evgeniy
08.09.2018
16:23:25
Тут Adam Granicz не так давно в Казахстане на митапе выступал.
https://www.meetup.com/ru-RU/GDG-Almaty/events/253902832/
Есть кто-нибудь из Алматы, кто ходил? :)
Презентация.
https://www.slideshare.net/granicz/gdg-almaty-meetup-reactive-fullstack-net-web-applications-with-websharper

Grigoriy
09.09.2018
04:17:48

Friedrich
09.09.2018
04:20:25
Тебе нужно сделать наследника от WebHostService, а в конструктор родителю передавать IWebHost.
Не совсем F#-friendly решение, допустим, но хоть такое!

Grigoriy
09.09.2018
04:24:56
UseStartup<> тоже работает
Я скриншотик запостил

Friedrich
09.09.2018
04:30:20
Как вообще до этого можно было догадаться? Что оно рефлекшеном позовёт твои приватные методы?

Grigoriy
09.09.2018
04:31:23
Оно рефлекшоном позовёт Configure

Friedrich
09.09.2018
04:32:40
А, всё. Я невнимательно смотрел твой код :)

Grigoriy
09.09.2018
04:33:25
Это написано в документации, но там простыня на 10 экранов :( и это написано в сааааамом конце
Ща найду ссыль :)

Google

Grigoriy
09.09.2018
04:34:37
Причём пару раз оно у меня не стартовало и я долго тупил :) пока не посмотрел в ЭвентЛог

Friedrich
09.09.2018
04:34:58
Давай интереса ради посмотрим в сорцы. Кажется, оно делает что-то подобное твоему коду: https://github.com/aspnet/Hosting/blob/master/src/Microsoft.AspNetCore.Hosting.WindowsServices/WebHostService.cs

Grigoriy
09.09.2018
04:35:42
Оказалось, что надо () поставить - иначе конструктора нет :)

Friedrich
09.09.2018
04:36:09
Только оно ещё вайрится к Windows Service System, видишь?
В твоём варианте ты обрабатываешь только события процесса. Твой «сервис» умирает, когда система терминирует процесс.
А здесь сделано наоборот — хендлится событие от ServiceBase, и это вызывает graceful stop вебхоста.
...который потом ещё раз пытается остановить сервис, и для этого подставлен костылец
Я не уверен, что у твоего кода и приведённого тут есть какая-то существенная видимая разница, но подход с WebHostService мне видится более правильным.

Grigoriy
09.09.2018
04:38:32
Ок :)

Friedrich
09.09.2018
04:40:39
С другой стороны, ServiceBase.Run же ведь отвалится, если его стартовать в несервисном режиме?
А у тебя всё будет работать.

Grigoriy
09.09.2018
04:41:47
Я же могу сделать так же, как и в статье ожидают старта, но вставить такой же код в OnStop, чтобы завершить всё, что нужно до полного стопа?

Friedrich
09.09.2018
04:44:44