Есть консольное приложение ASP.NET Core (gRPC сервис). Одна из его задач отправка скриншотов в клиентское приложение на другом ПК с определенной периодичностью.
Если это приложение запускается просто двойным кликом, то все работает, но стоит только создать из него службу и запускать ее, то все сразу перестает работать (именно функция создания и отправки скриншотов).
Собственно вопрос: служба не имеет доступа к экрану? Почему? Если не существует видимого окна или иконки в трее, то ничего работать не будет или я что-то не понимаю?
Это особенности улучшенной политики безопасности для служб начиная с Windows 7 - системные службы по умолчанию не имеют доступа к пользовательской сессии. Либо запускайте вашу службу в пользовательской сессии, т.е. не от имени системы, а от имени пользователя, либо как приложение. Если же службе надо работать от имени системы - тогда, вам надо разделить её на две службы: для получения скриншотов использовать службу в пользовательской сессии, а для остального - в системной.