Comments 28
Если служба запускается под учёткой NT AUTHORITY\Network Service, нужно было специально раздать права
netsh http add urlacl url=http://+:9001/ user="NT AUTHORITY\Network Service"
Почему автор с этим не столкнулся?
Порт разделяется между всеми процессами, которые его слушают, инструменты вроде netstat показывают случайный процесс. На самом деле, порт слушается драйвером HTTP.SYS
Пакеты в сниффере должны быть видны, возможно вы как-то не так смотрели.
На дворе 2017ый, а на хабре статьи про WCF (технология без будущего), написанный на VS2015...
Ожидал увидеть — "Как на netcore-2.0-preview запустить WCF через RabbitMQ"
А что не так с этой технологией?
Никакого развития. Поддержки в netcore не предвидится.
Да с самой технологией всё хорошо. Вот только, как раз благодаря стабильности WCF — ценность новых helloworld-ов на full .NET не так уж и велика. Например, официальная документация по этой теме — на мой взгляд, куда более читабельная. От Хабра всё-таки ждешь глубины, а не полноэкранных скриншотов пустого окна Студии.
Да, мы тоже используем на уровне поддержки. Новые сервисы пишутся как webapi. Для велосипедов сложнее используется akka.net и rabbitmq. Плюсы? Это ещё бОльший конструктор, нет завязки на msmq, можно присоединять другие экосистемы через тот же rabbit.
У меня вопрос был не к технологии, а к статье, которая по сути хеллоуворлд, да ещё и в 2015 студии. Разницы в коде конечно не будет, но человек явно забыл обновить тулы.
MS, конечно, обещал добавить WCF в .NET Core, но изначально ее там не было и они стараются перетянуть всех на ASP.NET MVC (который теперь и Web API)
… и это будет ничем не проще того, что написано тут в статье.
Суть в том, что без IIS никаких Autostart и RunAlways не настроить, а добавлять IIS в зависимости не всегда допустимо.
На самом деле, нашим LeanOps проще иметь дело с IIS-hosted приложениями, отсюда и переход на ASP.NET c Windows Service. Сначала, мне тоже это казалось странным. Теперь — совсем нет. Кроме того, как я уже говорил, легко прикручиваются очень полезные web-страницы для мониторинга, управления настройками и проч.
Речь идеть просто об альтернативном подходе. Не мил IIS, не используйте.
UPD Обновлять в плане выкатывать версию 2 вместо версии 1, новая сборка с конвейера пришла.
Останавливаем службу, заменяем файлы, запускаем службу.
Для начала стоит вести версионирование api.
А деплой подобных компонентов может происходит так:
1) новая версия деплоится на резервную машину и запускается
2) балансировщик переключается на резервную машину (все запросы теперь шлются туда)
3) деплоится новая версия на основную машину
4) основная становится резервной (опционально)
Работаем.
Пример создания WCF-сервиса, работающего внутри службы Windows