powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Topshelf - кто-то пользуется?
28 сообщений из 28, показаны все 2 страниц
Topshelf - кто-то пользуется?
    #38887117
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забрал, хотел посмотреть как оно работает, не смог построить.
http://topshelf-project.com/

Ваши отзывы?

Хочу сделать одно приложение для консоли и сервиса.
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38887367
Фотография Абсолют
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пользуюсь. В чем проблема у тебя?
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38887380
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АбсолютПользуюсь. В чем проблема у тебя?

забрал из github исходники, попытался построить всё, не строится:

Код: c#
1.
2.
3.
4.
1>F:\Samples\Topshelf\Topshelf-develop\src\Topshelf\Logging\HostLogger.cs(16,11,16,20): error CS0246: The type or namespace name 'Internals' could not be found (are you missing a using directive or an assembly reference?)
1>F:\Samples\Topshelf\Topshelf-develop\src\Topshelf\Logging\TraceLogWriterFactory.cs(17,11,17,20): error CS0246: The type or namespace name 'Internals' could not be found (are you missing a using directive or an assembly reference?)
1>F:\Samples\Topshelf\Topshelf-develop\src\Topshelf\Logging\TraceLogWriterFactory.cs(22,18,22,47): error CS0246: The type or namespace name 'Cache' could not be found (are you missing a using directive or an assembly reference?)
1>F:\Samples\Topshelf\Topshelf-develop\src\Topshelf\Logging\TraceLogWriterFactory.cs(23,18,23,44): error CS0246: The type or namespace name 'Cache' could not be found (are you missing a using directive or an assembly reference?)




причем тупо запустил поиск по всем ффайлам и не нашел определения неймспейса Internals

Что не так?
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38887729
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh, а вин сервис не алё?
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38887794
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наш девиз - на каждый чих по фреймворку, причем стороннему :-) Чем не устраивает типовой проект служб в студии?
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38887795
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinnipuhХочу сделать одно приложение для консоли и сервиса.
http://www.sql.ru/forum/895655/kak-ustanovit-odnu-i-tuzhe-sluzhbu-s-dvumya-raznymi-imenami?mid=11611062#11611062
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38887831
Фотография Абсолют
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh,

nuget чем не угодил?
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888002
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Чем не устраивает типовой проект служб в студии?Тем что он уныл до невозможности, например. Без специальных пендалей не будет ни нескольких экземпляров, ни Recovery, ни простой установки, ни простого удаления.
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888012
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НахлобучArm79Чем не устраивает типовой проект служб в студии?Тем что он уныл до невозможности, например. Без специальных пендалей не будет ни нескольких экземпляров, ни Recovery, ни простой установки, ни простого удаления.
Но в большинстве случаев этого и не требуется. Редко когда нужны нескольких экземпляров - за все время мне потребовалось лишь пару раз. И инсталляция из коробки очень простая - installutil путь к экзешнику
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888064
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НахлобучТем что он уныл до невозможности, например.
Окружи рабочее место погремушками и мишурой, серая унылость сменится задорной радостью.

НахлобучБез специальных пендалей не будет ни нескольких экземпляров, ни Recovery, ни простой установки, ни простого удаления.
Не фантазируй, установить и удалить сервис - проще не придумаешь, только у криворуких недолюдей могут быть с этим проблемы. Никаких Recovery не нужно, хватит на пустом месте придумывать требования. Есть сервис, есть джобы, есть расписание джобов, есть лог. Всё. Этого в 99.9% случаев хватает с головой.
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888105
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУWinnipuh, а вин сервис не алё?

мне бы хотелось такого:
у меня есть прожект, который строит вин сервис хост ехе для WCF сервиса, и чтобы можно было его запустить как консольный хост, чтобы видеть логи, отладка удобнее и т.д.
Вот и нарыл.

Если можно обойтись без топшельфа, но чтобы красиво - готов следовать подсказкам.
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888123
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АбсолютWinnipuh,

nuget чем не угодил?

вариант, но как обычно бывает потянуло построить... тем более у меня проект строится в двух вариантах: x86, x64, возможно пришлось бы и топшельф в таком виде строить, х.з.
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888128
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuhу меня есть прожект, который строит вин сервис хост ехе для WCF сервиса, и чтобы можно было его запустить как консольный хост, чтобы видеть логи, отладка удобнее и т.д.
Бред какой-то про консоль. Во-первых, неудобно что-то искать в консоли, во-вторых, информация теряется.
Чем не устроило логировать как нормальные люди в БД или в файл?

WinnipuhЕсли можно обойтись без топшельфа, но чтобы красиво - готов следовать подсказкам.
Ну тебе уже сказали, шельф высосан из пальца, проблема твоя - тоже.

Вот тут рецепт вин сервис процессора, который процессит таски на кварце. Логирует в евент лог, файл или базу. Расписание тасков планируются через внятный iCalendar. Что еще надо-то?

http://codearticles.ru/articles/2499
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888165
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuhу меня есть прожект, который строит вин сервис хост ехе для WCF сервиса, и чтобы можно было его запустить как консольный хост, чтобы видеть логи, отладка удобнее и т.д.
Вот и нарыл.
Я уже привел ссылку на свою реализацию, которая, в свою очередь, является компиляцией из других решений. Сделал шаблон проекта и разместил в студии. Что в ней некрасивого?
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888183
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУWinnipuhу меня есть прожект, который строит вин сервис хост ехе для WCF сервиса, и чтобы можно было его запустить как консольный хост, чтобы видеть логи, отладка удобнее и т.д.
Бред какой-то про консоль. Во-первых, неудобно что-то искать в консоли, во-вторых, информация теряется.
Чем не устроило логировать как нормальные люди в БД или в файл?

WinnipuhЕсли можно обойтись без топшельфа, но чтобы красиво - готов следовать подсказкам.
Ну тебе уже сказали, шельф высосан из пальца, проблема твоя - тоже.

Вот тут рецепт вин сервис процессора, который процессит таски на кварце. Логирует в евент лог, файл или базу. Расписание тасков планируются через внятный iCalendar. Что еще надо-то?

http://codearticles.ru/articles/2499

не бред, у меня там прикручен лог4нет, лепит в любое место, включая консоль. Но бывают моменты, когда надо пустить консоль, юзеры разные бывают.
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888186
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Winnipuhу меня есть прожект, который строит вин сервис хост ехе для WCF сервиса, и чтобы можно было его запустить как консольный хост, чтобы видеть логи, отладка удобнее и т.д.
Вот и нарыл.
Я уже привел ссылку на свою реализацию, которая, в свою очередь, является компиляцией из других решений. Сделал шаблон проекта и разместил в студии. Что в ней некрасивого?

спасибо, проверю как и что.
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888277
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuhне бред, у меня там прикручен лог4нет, лепит в любое место, включая консоль. Но бывают моменты, когда надо пустить консоль, юзеры разные бывают.
Не поверишь, у меня тоже там прикручен log4net, если ты откроешь солюшен, то увидишь это :) Никогда еще не встречал реальной боевой ситуации, когда нужно логировать в консоль :) Я не спорю, можно и так. Но почему бы тогда не логировать в... email письма? Или в почтовых голубей? Прикинь как здорово, джоб отработал, подал единичный байт на ком порт, считыватель обработал байт и подал сигнал на принтер, принтер распечатал сообщение из очереди, потом пошел сигнал открыть клетку с голубем, голубь вылез из клетки, схватил лист А4 с логом и, обсирая всё вокруг, полетел к админам. Как тебе такой кейс?
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888296
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУНикогда еще не встречал реальной боевой ситуации, когда нужно логировать в консоль
Иногда юзеры требуют, чтобы ошибки отображались в консоли, и не хотят сервис. Им мол сразу видно, появилась ошибка или нет. Подход неразумный, конечно, но требование клиента нужно удовлетворять.

Со своей стороны я лично использую консоль исключительно для отладки. Удобнее сначала отладить в консоли, чем запускать сервис, а потом аттачиться к нему.
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888342
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МСУWinnipuhне бред, у меня там прикручен лог4нет, лепит в любое место, включая консоль. Но бывают моменты, когда надо пустить консоль, юзеры разные бывают.
Не поверишь, у меня тоже там прикручен log4net, если ты откроешь солюшен, то увидишь это :) Никогда еще не встречал реальной боевой ситуации, когда нужно логировать в консоль :) Я не спорю, можно и так. Но почему бы тогда не логировать в... email письма? Или в почтовых голубей? Прикинь как здорово, джоб отработал, подал единичный байт на ком порт, считыватель обработал байт и подал сигнал на принтер, принтер распечатал сообщение из очереди, потом пошел сигнал открыть клетку с голубем, голубь вылез из клетки, схватил лист А4 с логом и, обсирая всё вокруг, полетел к админам. Как тебе такой кейс?

Это продиктовано реальными ситуациями, то есть, обычно не нужно, а вот когда нужно, тогда долб*бу юзеру можно объяснить, сделай стоп сервису, пусти приложение, что видишь? типа такого.
;-)
Ну и для девелоперов, пишущих клиента удобно пустить консоль из-под студии и видеть последние сообщения, и в отладчике ходить по сервису, когда нужно, а не париться с сервисом и лог4нетом.
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888497
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuh,

в чём состоит "париться" c логгером(штатным например)?
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888499
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Со своей стороны я лично использую консоль исключительно для отладки. Удобнее сначала отладить в консоли, чем запускать сервис, а потом аттачиться к нему.
Ну ты даешь. Как отлаживать сервис - есть у меня в рецепте. Делаешь юнит тест и говоришь ему Debug, по препроцессорной директиве DEBUG пинается отладка сервиса, без его запуска и аттача.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
namespace Services.WorkItemProcessor
{
    static class Program
    {
        static void Main()
        {
#if (!DEBUG)
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] { new LoadService() };
            ServiceBase.Run(ServicesToRun);
#else
            LoadService service = new LoadService();
            service.StartDebug(null);
            Thread.Sleep(Timeout.Infinite);
#endif
        }
    }
}



Коллеги, может для начала вы научитесь работать с вин сервисами, перед тем, как их критиковать? :) Читайте рецепты, для кого выкладываю...
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888559
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилWinnipuh,

в чём состоит "париться" c логгером(штатным например)?

например то, что не просто юзеру объяснить куда пойти и что настроить,и затем куда смотреть.
Но, еще раз - это бывает
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888581
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Winnipuhнапример то, что не просто юзеру объяснить куда пойти и что настроить,и затем куда смотреть.

да проще конечно сказать - останови сервис и запусти exe файл и диктуй по телефону что там в консоль выводится

приложи простую человеческую утилиту управления настройками логирования сервиса (что в каких случаях куда и как отправлять)
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888664
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WinnipuhИзопропилWinnipuh,

в чём состоит "париться" c логгером(штатным например)?

например то, что не просто юзеру объяснить куда пойти и что настроить,и затем куда смотреть.
Но, еще раз - это бывает
Не надо ничего объяснять. Сервис можно запустить ит можно остановить, всё. Больше никаких знаний "пользователя" относительно сервиса не требуется. Как смотреть в евент лог, думаю, объяснять не нужно - удобный штатный механизм для мониторинга событий с поиском, группами и прочей атрибутикой. Всё уже сделано для нас, какая консоль, о чем ты? Забудь о консолях.
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38888725
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилWinnipuhнапример то, что не просто юзеру объяснить куда пойти и что настроить,и затем куда смотреть.

да проще конечно сказать - останови сервис и запусти exe файл и диктуй по телефону что там в консоль выводится

приложи простую человеческую утилиту управления настройками логирования сервиса (что в каких случаях куда и как отправлять)


какая-то консервативная ветка
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38889425
Фотография Нахлобуч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79инсталляция из коробки очень простая - installutil путь к экзешникуДа, только сначала нужно до этого installutil дойти, выбрать правильную архитектуру, запустить из-под Администратора. И это все против "myservice.exe install --sudo".
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38889440
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НахлобучArm79инсталляция из коробки очень простая - installutil путь к экзешникуДа, только сначала нужно до этого installutil дойти, выбрать правильную архитектуру, запустить из-под Администратора. И это все против "myservice.exe install --sudo".
Ну, скажем так, у меня сервисы могут работать и как консоль, и как win-сервис, и сами себя инсталлируют под любым именем. Но мне в голову не приходило реализовывать еще и sudo. Думаю, это лишнее. Есть же runas.

Ну а найти правильный installutil несложно :-) Хотя...
...
Рейтинг: 0 / 0
Topshelf - кто-то пользуется?
    #38889483
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нарыл я тут одну статейку и сделал так, установкой сервиса занимается инсталлятор, а если надо пускаю ехе и он стартует как консольное прилагалище. Вроде все ок.

http://einaregilsson.com/run-windows-service-as-a-console-program/

Код: 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.
using System;
using System.ServiceProcess;
 
public partial class DemoService : ServiceBase
{
    static void Main(string[] args)
    {
        DemoService service = new DemoService();
 
        if (Environment.UserInteractive)
        {
            service.OnStart(args);
            Console.WriteLine("Press any key to stop program");
            Console.Read();
            service.OnStop();
        }
        else
        {
            ServiceBase.Run(service);
        }
 
    }
    public DemoService()
    {
        InitializeComponent();
    }
 
    protected override void OnStart(string[] args)
    {
        // TODO: Add code here to start your service.
    }
 
    protected override void OnStop()
    {
        // TODO: Add code here to perform any tear-down
        //necessary to stop your service.
    }
}
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Topshelf - кто-то пользуется?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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