ใน IIS7 มีหลายสิ่งหลายอย่างที่คุณสามารถทำได้เพื่อรีสตาร์ทเว็บไซต์ ฉันไม่ชัดเจนว่าพวกเขาทั้งหมดเกี่ยวข้องกันอย่างไร

  • เรียกใช้ iisreset จากบรรทัดคำสั่ง
  • รีเฟรชเว็บไซต์
  • รีไซเคิลแอพพูล
  • เริ่มเว็บไซต์ใหม่

ใครสามารถอธิบายได้ว่าแต่ละคนทำอะไรได้บ้าง?

answer

iisresetจะหยุดและเริ่มบริการ World Wide Web Publishing แน่นอนว่าสิ่งนี้ใช้ได้กับกลุ่มแอปพลิเคชันทั้งหมดของคุณ ฉันแน่ใจว่าคุณสังเกตเห็นว่ามีการสร้างกระบวนการสำหรับแต่ละกลุ่มแอปพลิเคชัน กระบวนการนี้จะจัดการกับคำขอสำหรับเว็บไซต์ทั้งหมดที่เกี่ยวข้อง เมื่อคุณรีไซเคิลกลุ่มแอปพลิเคชัน IIS จะสร้างกระบวนการใหม่ (เก็บกระบวนการเก่าไว้) เพื่อให้บริการตามคำขอ จากนั้นจะพยายามย้ายคำขอทั้งหมดในกระบวนการใหม่ หลังจากหมดเวลา กระบวนการเก่าจะถูกฆ่าโดยอัตโนมัติ คุณมักจะรีไซเคิลกลุ่มแอปพลิเคชันของคุณเพื่อกำจัดหน่วยความจำที่รั่วไหล (คุณอาจมีปัญหาในแอปพลิเคชันของคุณ หากจำเป็นต้องดำเนินการตามปกติ แม้ว่าจะแนะนำให้มีการรีไซเคิลตามกำหนดการ) สำหรับการรีสตาร์ทเว็บไซต์มันหยุดและเริ่มให้บริการคำขอสำหรับเว็บไซต์นั้น ๆ อีกครั้ง จะยังคงให้บริการเว็บไซต์อื่น ๆ ในกลุ่มแอปเดียวกันโดยไม่มีการหยุดชะงัก

หากคุณมีแอปพลิเคชันที่เน้นเซสชัน ทั้งหมดข้างต้นจะทำให้วัตถุของเซสชันสูญหาย

การรีเฟรชเว็บไซต์ไม่มีผลกับบริการ/กระบวนการ/เว็บไซต์ และเป็นเพียงคำสั่ง UI เพื่อรีเฟรชทรีวิว (บางทีคุณอาจเพิ่มไดเร็กทอรีที่คุณไม่เห็นในคอนโซลการจัดการ)

ในการตอบคำถามอีกสองข้อของคุณ:

  • รีเฟรชเว็บไซต์เพียงแค่โหลดข้อมูลจากเซิร์ฟเวอร์ใหม่
  • รีสตาร์ทเว็บไซต์ไม่ได้ช่วยอะไรมาก การหยุดเว็บไซต์จะทำให้ไม่รับฟังคำขอเกี่ยวกับการผูกมัดใดๆ อีกต่อไป การเริ่มใหม่อีกครั้งทำให้เริ่มฟังอีกครั้ง กระบวนการที่ให้บริการเว็บไซต์ยังคงไม่ได้รับผลกระทบ

iisreset หยุดและเริ่มทั้งเว็บเซิร์ฟเวอร์ นั่นคือทั้งหมด ผู้ใช้ทั้งหมดของคุณสูญเสียการเชื่อมต่อในขณะที่สิ่งนี้เกิดขึ้น

การรีไซเคิลกลุ่มแอปพลิเคชันจะหยุดและเริ่มกระบวนการที่เกี่ยวข้องกับแอปพลิเคชันที่อยู่ในพูลนั้น กล่าวโดยเคร่งครัดว่าไม่มีส่วนเกี่ยวข้องกับเว็บไซต์ (ยกเว้นเนื้อหาที่ใช้งานจากแอปพลิเคชันเหล่านั้น)

@Vlad Mucescu ให้คำตอบที่ดี แต่ดูเหมือนว่าส่วนที่เขาอธิบายการรีไซเคิลแอปพลิเคชันที่เขาพูดถึงเกี่ยวกับการรีไซเคิลที่ทับซ้อนกัน การรีไซเคิลมีสองประเภท: กระบวนการรีไซเคิลและการรีไซเคิลที่ทับซ้อนกัน ( ที่มา MSDN ):

กระบวนการรีไซเคิล

โหมดการแยกกระบวนการของผู้ปฏิบัติงานเสนอการรีไซเคิลกระบวนการ ซึ่ง IIS จะรีเฟรชเว็บแอปพลิเคชันโดยอัตโนมัติโดยเริ่มกระบวนการใหม่ของผู้ปฏิบัติงาน การรีไซเคิลในกระบวนการทำให้แอปพลิเคชันที่มีปัญหาทำงานได้อย่างราบรื่น และเป็นวิธีแก้ปัญหาที่มีประสิทธิภาพโดยเฉพาะอย่างยิ่งในกรณีที่ไม่สามารถแก้ไขโค้ดของแอปพลิเคชันได้
กระบวนการรีไซเคิลซึ่งเกิดขึ้นหลังจากเหตุการณ์การรีไซเคิลสามารถเกิดขึ้นได้สองวิธี
หากกระบวนการของผู้ปฏิบัติงานที่ให้บริการกลุ่มแอปพลิเคชันสิ้นสุดลง บริการ WWW (W3SVC) ซึ่งทำหน้าที่เป็นกระบวนการหลักสำหรับกระบวนการของผู้ปฏิบัติงาน จะเริ่มต้นกระบวนการใหม่แทน
เมื่อกระบวนการของผู้ปฏิบัติงานสิ้นสุดลง กระบวนการใหม่จะเริ่มต้นพร้อมกัน การรีไซเคิลประเภทนี้เรียกว่าการรีไซเคิลที่ทับซ้อนกัน เป็นค่าเริ่มต้นสำหรับกลุ่มแอปพลิเคชันทั้งหมด

การรีไซเคิลที่ทับซ้อนกัน

ในสถานการณ์สมมติการรีไซเคิลที่คาบเกี่ยวกัน กระบวนการที่กำหนดเป้าหมายสำหรับการรีไซเคิลจะยังคงดำเนินการตามคำขอที่เหลือทั้งหมด ในขณะที่กระบวนการของผู้ปฏิบัติงานเปลี่ยนทดแทนจะถูกสร้างขึ้นพร้อมกัน กระบวนการใหม่เริ่มต้นขึ้นก่อนที่กระบวนการของผู้ปฏิบัติงานเก่าจะหยุด จากนั้นคำขอจะถูกส่งไปยังกระบวนการใหม่ การออกแบบนี้ป้องกันความล่าช้าในการบริการ เนื่องจากกระบวนการเก่ายังคงยอมรับคำขอจนกว่ากระบวนการใหม่จะเริ่มต้นได้สำเร็จ และได้รับคำสั่งให้ปิดตัวลงหลังจากที่กระบวนการใหม่พร้อมที่จะจัดการกับคำขอเท่านั้น