ฉันใช้คุณสมบัตินี้ใน Windows รุ่นก่อนหน้าเช่น XP และ NT ฉันสามารถเรียกใช้ GUI จากบริการ Windows ได้ แต่มันเป็นไปไม่ได้ในรุ่นที่ใหม่กว่า
อะไรคือสาเหตุของการลบคุณสมบัตินี้? เหตุใดบริการ Windows จึงไม่มี GUI
ฉันใช้คุณสมบัตินี้ใน Windows รุ่นก่อนหน้าเช่น XP และ NT ฉันสามารถเรียกใช้ GUI จากบริการ Windows ได้ แต่มันเป็นไปไม่ได้ในรุ่นที่ใหม่กว่า
อะไรคือสาเหตุของการลบคุณสมบัตินี้? เหตุใดบริการ Windows จึงไม่มี GUI
คำตอบ:
เหตุผลด้านความปลอดภัยส่วนใหญ่
ที่ฉันเข้าใจเมื่อบริการ windows สร้างตัวควบคุม GUI เช่น MessageBox พวกเขามักจะเห็นเฉพาะในเซสชั่นที่บริการที่ทำงานในเช่นเซสชั่น 0 ซึ่งเคยเป็นผู้ใช้ครั้งแรกที่เข้าสู่ระบบในท้องถิ่นหรือโดยคนที่เข้าสู่ระบบโดยใช้ mstsc / admin ดังนั้นผู้ใช้รายนี้จะเห็นการควบคุมเหล่านี้และสามารถโต้ตอบกับบริการได้
แต่ด้วยเหตุผลด้านความปลอดภัยขณะนี้เซสชัน 0 ถูกจองแล้วและผู้ใช้รายแรกที่เข้าสู่ระบบจะได้รับเซสชันใหม่และด้วยเหตุนี้จึงไม่เห็นการควบคุม GUI
เนื่องจากการแบ่งบริการค่อนข้างมากสำหรับความเข้ากันได้จึงมีกระบวนการ (ดูบล็อก MSDN นี้)ที่พยายามตรวจสอบว่ามีข้อความใดปรากฏขึ้นและป๊อปอัปพร้อมคำเตือน 'โปรแกรมที่ทำงานบนคอมพิวเตอร์เครื่องนี้กำลังพยายามแสดงข้อความ 'และอนุญาตให้คุณดูหรือไม่สนใจข้อความ
Microsoft มี WhitePaper ในหัวข้อนี้ซึ่งคุณสามารถดาวน์โหลดได้จากที่นี่
ฉันยังสงสัยว่าเหตุผลเล็กน้อยอีกประการหนึ่งก็เพราะคุณสมบัตินี้ถูกนำไปใช้ในทางที่ผิด / เข้าใจผิดและนำไปสู่การออกแบบที่ไม่ดี ตัวอย่างเช่นฉันเคยมีเซิร์ฟเวอร์เก่าที่มีบริการบุคคลที่สามที่แสดงการแจ้งเตือน / ข้อผิดพลาดบางอย่างโดยใช้กล่องข้อความแทนที่จะเขียนลงในบันทึกเหตุการณ์ แต่ฉันไม่เคยเข้าสู่ระบบในประเทศและไม่ค่อยเข้าสู่ระบบในโหมดผู้ดูแลระบบและด้วยเหตุนี้ฉันจะไม่เห็นข้อความ
บริการอินเทอร์แอคทีฟเคยเป็นไปได้แต่โมเดลบริการเป็นของกระบวนการที่ทำงานโดยไม่ขึ้นกับผู้ใช้ใด ๆ พวกเขาถูกออกแบบมาเพื่อให้ทำงานแบบอัตโนมัติและไม่ควรใช้ GUI
ไม่สามารถใช้บริการแบบโต้ตอบได้ตั้งแต่ Windows Vista ดังนั้นจึงไม่ควรใช้อีกต่อไป
หากคุณต้องการโต้ตอบกับบริการหน้าเว็บที่ฉันเชื่อมโยงเพื่อแนะนำให้สร้างแอปพลิเคชัน GUI แยกต่างหากที่สื่อสารกับบริการผ่านการสื่อสารระหว่างกระบวนการ (IPC) ของการเรียงลำดับบางอย่าง - เช่นไปป์ที่มีชื่อ
เพราะบริการควรทำงานในพื้นหลังโดยไม่ต้องโต้ตอบกับผู้ใช้ พวกเขาอาจทำงานจริงในขณะที่ไม่มีผู้ใช้เข้าสู่ระบบ
ใช่มันเป็นไปได้และมันใช้งานได้ เมื่อคุณเข้าสู่ระบบคุณจะได้รับส่วนต่อประสานของแอปพลิเคชัน มันมีประโยชน์มากสำหรับแอปพลิเคชันรุ่นเก่าที่ไม่มีบริการ แต่ยังจำเป็นต้องเรียกใช้บนเซิร์ฟเวอร์ แม้ว่ามันจะไม่ใช่ทางออกที่เสถียรที่สุด มันเริ่มทำงานในฐานะผู้ใช้ที่สามารถคลิกหรือออกจากระบบ นั่นไม่ดีมาก
ตอนนี้ทุกคนพัฒนาบริการแบบเนทีฟและเพิ่มแอปพลิเคชันหรือบันทึกเพื่อจัดการบริการ นั่นเป็นรูปแบบการออกแบบที่ดีและตอนนี้ถูกใช้งานเกือบตลอดเวลา
ดังนั้นดูเพิ่มเติมว่าเป็นมรดกที่เป็นไปได้
บริการมีไว้สำหรับการดำเนินการที่ไม่ได้เข้าร่วมโดยส่วนใหญ่อยู่ในพื้นหลังบริการชื่อนั้นหมายถึงทำหน้าที่เป็นเซิร์ฟเวอร์สำหรับแอปพลิเคชันไคลเอนต์หรือบริการอื่น ๆ ที่ใช้บริการนี้ ดังนั้น MS อาจต้องการยึดติดกับพื้นฐานและต้องการวาดความแตกต่างที่ชัดเจนระหว่างบริการและแอพดังนั้นแอพจึงทำให้การใช้งานไม่ว่างและให้บริการตอบสนองวัตถุประสงค์อย่างเงียบ ๆ ทำไมถึงต้องใช้มีดทำครัวเพื่อตัดนิล