Відповіді:
В основному причини безпеки.
Як я розумію, коли служба вікон створює GUI елементи управління , такі як MessageBox, вони зазвичай можна побачити тільки в сесії , що пробіги послуг в цей же Session 0 , які також використовуються , щоб бути першим користувач увійшов в систему локально або ким - то протоколювання на використанні mstsc / admin. Отже, цей користувач побачить ці елементи керування та може взаємодіяти зі службою.
Але з міркувань безпеки зараз сесія 0 зарезервована, і першому користувачеві, який увійде в систему, буде надано нове сеанс, і, отже, не буде показано елементів керування графічним інтерфейсом.
Оскільки це порушує досить багато служб, для сумісності існує процес (див. Цей блог MSDN), який намагається визначити, чи відображаються якісь повідомлення, і спливає з попередженням: «Програма, що працює на цьому комп’ютері, намагається відобразити повідомлення 'і дозволяє переглядати або ігнорувати повідомлення.
Microsoft має WhitePaper з цього приводу, який ви можете завантажити тут
Я б також підозрював, що ще одна незначна причина полягає в тому, що цю функцію неправильно використали / неправильно зрозуміли та призвели до поганих конструкцій. Наприклад, у мене був старий сервер із стороннім сервісом, який відображав деякі сповіщення / помилки, використовуючи поле повідомлень, а не записуючи до журналу подій. Але я ніколи не входив локально і рідко входив у режим адміністрування, отже, я б не бачив повідомлень.
Раніше були можливі інтерактивні сервіси , але модель сервісу - це процес, який працює незалежно від будь-якого користувача. Вони розроблені так, щоб вони працювали без нагляду і тому не повинні мати GUI.
Інтерактивні послуги недоступні з Windows Vista, тому їх більше не слід використовувати.
Якщо вам потрібно взаємодіяти зі службою, сторінка, на яку я пов’язана, рекомендує створити окрему програму GUI, яка спілкується зі службою за допомогою міжпроцесорного зв'язку (IPC) певного типу - наприклад, названих труб.
Оскільки послуги повинні працювати у фоновому режимі без взаємодії з користувачем; насправді вони можуть працювати, поки жоден користувач не входить у систему.
Так, можна було, і це спрацювало. Після входу в систему ви отримали інтерфейс програми. Це було дуже корисно для старих програм, які не мають служби, але все ще потребують роботи на сервері. Хоча це було не найстабільнішим рішенням. Він запустився як той користувач, який міг натиснути його або вийти з системи. Це було не дуже приємно.
Тепер усі розробляють натільні сервіси та додають додаток або журнал для управління послугою. Це гарна модель дизайну і зараз використовується більшість часу.
Тож розглядайте це більше як спадщину, що це було можливо.
Послуга призначена для не відвідуваних операцій, головним чином у фоновому режимі. Сама послуга імен означає функцію сервера для деяких клієнтських додатків або інших служб, які споживають цю послугу. Таким чином, MS може захотіти тепер дотримуватися основ і хотіти зробити чітке розмежування між службами та Apps.Таким чином додатки не дозволяють використовувати заняття і нехай сервіси мовчки служать своєму призначенню. Хоча різач для нігтів є, навіщо їхати за кухонним ножем, щоб вирізати нулі?