Jawaban:
Terutama alasan keamanan.
Seperti yang saya pahami, ketika layanan windows membuat kontrol GUI seperti MessageBox, mereka biasanya hanya terlihat di sesi ketika layanan berjalan yaitu Sesi 0 yang juga digunakan untuk menjadi pengguna pertama yang masuk secara lokal atau oleh seseorang yang masuk menggunakan mstsc / admin. Karenanya pengguna ini akan melihat kontrol ini dan dapat berinteraksi dengan layanan.
Tetapi untuk alasan keamanan, Sesi 0 sekarang dicadangkan dan pengguna pertama yang masuk akan diberi sesi baru dan karenanya tidak melihat Kontrol GUI.
Karena ini memecah cukup banyak layanan, untuk kompatibilitas, ada proses (lihat blog MSDN ini) yang mencoba mendeteksi apakah ada pesan yang ditampilkan dan sembulan dengan peringatan 'Program yang berjalan di komputer ini mencoba menampilkan pesan 'dan memungkinkan Anda melihat atau mengabaikan pesan.
Microsoft memiliki WhitePaper tentang hal ini yang dapat Anda unduh dari sini
Saya juga akan menduga bahwa alasan kecil lainnya adalah karena fitur itu disalahgunakan / disalahpahami dan menyebabkan desain yang buruk. Sebagai contoh, saya dulu memiliki server lama dengan layanan pihak ketiga yang menampilkan beberapa notifikasi / kesalahan menggunakan kotak pesan daripada menulis ke log peristiwa. Tapi saya tidak pernah masuk secara lokal dan jarang masuk dalam mode admin dan karenanya saya tidak akan melihat pesan.
Layanan interaktif dulu mungkin , tetapi model layanan adalah proses yang berjalan secara independen dari pengguna mana pun. Mereka dirancang untuk dijalankan tanpa pengawasan dan karenanya tidak perlu GUI.
Layanan interaktif belum tersedia sejak Windows Vista sehingga seharusnya tidak lagi digunakan.
Jika Anda perlu berinteraksi dengan layanan, halaman yang saya tautkan merekomendasikan untuk membuat aplikasi GUI terpisah yang berkomunikasi dengan layanan melalui komunikasi antarproses (IPC) atau sejenisnya - misalnya pipa bernama.
Karena layanan seharusnya berjalan di latar belakang tanpa berinteraksi dengan pengguna; mereka sebenarnya bisa berjalan saat tidak ada pengguna yang login.
Ya itu mungkin dan berhasil. Ketika Anda login, Anda mendapatkan antarmuka aplikasi. Itu sangat berguna untuk aplikasi yang lebih tua yang tidak memiliki layanan yang tersedia tetapi masih perlu dijalankan di server. Padahal itu bukan solusi yang paling stabil. Itu menjadi berjalan sebagai pengguna yang bisa mengkliknya atau keluar. Itu tidak terlalu baik.
Sekarang semua orang mengembangkan layanan asli dan menambahkan aplikasi atau log untuk mengelola layanan. Itu pola desain yang bagus dan sekarang sering digunakan.
Jadi melihatnya lebih sebagai warisan bahwa itu mungkin.
Layanan dimaksudkan untuk operasi yang tidak dihadiri, terutama di latar belakang. Layanan nama itu sendiri berarti bertindak sebagai server untuk beberapa aplikasi klien atau layanan lain yang menggunakan layanan ini. Jadi MS mungkin ingin sekarang berpegang pada dasar-dasar dan ingin menarik beberapa perbedaan yang jelas antara layanan dan Aplikasi. Jadi aplikasi membuat penggunaannya sibuk dan membiarkan layanan melayani tujuan mereka secara diam-diam. Sementara pemotong kuku ada, mengapa pisau dapur memotong nil?