คำขอแรกหลังจากที่ในขณะที่ช้าเสมอ - ASP.NET MVC / IIS 8.5 / Windows Server 2012 R2 VPS


12

ฉันกำลังโฮสต์แอปพลิเคชัน ASP.NET MVC 5 ที่มีปริมาณการใช้งานต่ำใน VPS ด้วย Windows Server 2012 R2 / IIS 8.5 พร้อม RAM 1 GB

ปัญหาของฉันคือคำขอแรกหลังจากผ่านไประยะหนึ่งโดยไม่มีคำขอใด ๆ จะได้รับการตอบสนองช้า - ประมาณ 1.5 วินาทีตาม Chrome Dev Tools คำขอการตอบกลับการรีเฟรชที่ตามมาจะใช้เวลาประมาณ 45 msเท่านั้น

ฉันได้ตั้งค่าโหมดเริ่มต้นเป็น AlwaysRunning บนแอพพลิเคชั่นแล้วและPreload Enabledเป็น True ในระดับเว็บไซต์ แต่ไม่มีผลใดๆ แม้ว่าจะไม่มีการเปลี่ยนแปลง / อัปโหลดใด ๆ หลังจากผ่านไประยะหนึ่งโดยมีการร้องขอครั้งต่อไปจะใช้เวลา 1.5 วินาทีในการรับการตอบกลับ

คำตอบ:


9

Application Initializationปัญหาคือคุณจะต้องติดตั้งคุณลักษณะ IIS จากนั้นควรทำงานกับการกำหนดค่าของคุณ

ภาพนี้มาจากบล็อกของ Rick Strahl :

คุณสมบัติ IIS

อย่าลืมตั้งค่า:

  • เริ่มโหมดเพื่อAlwaysRunningบนแอพลิเคชันพูล
  • Preload เปิดใช้งานเป็นTrueในระดับเว็บไซต์

คุณสามารถตั้งค่านี้โดยไม่ต้องติดตั้งApplication Initialization Module แต่จะไม่มีผลกระทบใด ๆ

ข้อมูลเพิ่มเติมที่นี่


0

อาจมีเวอร์ชันที่ไม่ตรงกันระหว่างเวอร์ชัน. NET Framework ที่เว็บไซต์ของคุณกำหนดเป้าหมายเมื่อเปรียบเทียบกับเวอร์ชัน. NET Framework Runtime ที่ติดตั้งบนเว็บเซิร์ฟเวอร์หรือไม่

และคุณกำลังปรับใช้เว็บไซต์ที่ไม่ได้ทำการคอมไพล์ล่วงหน้าและ / หรือสามารถอัปเดตได้หรือไม่? -

การตั้งค่า Precompile ขั้นสูง

การอัพเกรดเวอร์ชั่น. NET Runtime มีจุดประสงค์เพื่อให้สามารถใช้งานร่วมกันได้ อย่างไรก็ตามฉันพบปัญหาที่คล้ายกันมากเมื่อทำการโยกย้ายเว็บไซต์หลายแห่งที่มีเป้าหมายใน. NET 4.5.1 Framework จากเซิร์ฟเวอร์ Windows Server 2008 R2 ไปยังเซิร์ฟเวอร์ Windows Server 2012 R2 ที่ได้รับการแก้ไขจนถึงรันไทม์. NET 4.6 หน้าเริ่มต้นทั้งหมดของฉันโหลด (ในหลายเว็บไซต์) เริ่มใช้เวลาสองนาทีสำหรับแต่ละหน้าแทนที่จะเป็นเสี้ยววินาที และการทดลองทั้งหมดของฉันด้วยการตั้งค่า IIS ที่แตกต่างกันไม่ประสบความสำเร็จในการแก้ไขปัญหา

ในที่สุดฉันก็สามารถแก้ไขปัญหาได้สองวิธี:

  1. การสร้างเซิร์ฟเวอร์ใหม่อย่างเต็มรูปแบบ patched to .NET 4.5 Runtime ช่วยแก้ไขปัญหาของฉันได้ (รวมถึงการเพิ่มการตั้งค่ารีจิสทรีเพื่อป้องกันการติดตั้ง. NET 4.6.1 )
  2. อีกวิธีหนึ่งการปรับใช้เว็บไซต์ของฉันอีกครั้งด้วยการเลือก "Precompile" และ "ไม่อนุญาตให้อัปเดต" สามารถแก้ไขปัญหาของฉันได้เช่นกัน

ในทางตรงกันข้ามความพยายามทั้งหมดของฉันในการย้อนกลับหรือซ่อมแซม. NET Runtime เวอร์ชันบนเซิร์ฟเวอร์ไปยัง. NET 4.5 Runtime ไม่สามารถแก้ไขปัญหาการโหลดหน้าเว็บของฉันได้ ( ไม่มีกระบวนการที่สะอาดและเชื่อถือได้เป็นอย่างยิ่งในการย้อนกลับรันไทม์. NET แบบย่อในการถ่ายภาพเซิร์ฟเวอร์ซ้ำ)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.