10
ฉันเพิ่งค้นพบว่าทำไมเว็บไซต์ ASP.Net ทั้งหมดจึงช้าและฉันพยายามหาว่าจะทำอย่างไรกับมัน
ฉันเพิ่งค้นพบว่าทุกคำขอในเว็บแอปพลิเคชัน ASP.Net จะได้รับการล็อคเซสชันที่จุดเริ่มต้นของคำขอจากนั้นปล่อยเมื่อสิ้นสุดคำขอ! ในกรณีที่ความหมายของสิ่งนี้หายไปกับคุณเช่นเดียวกับฉันในตอนแรกสิ่งนี้ก็หมายถึงสิ่งต่อไปนี้: เมื่อใดก็ตามที่หน้าเว็บ ASP.Net ใช้เวลาโหลดนาน (อาจเป็นเพราะการโทรฐานข้อมูลที่ช้าหรืออะไรก็ตาม) และผู้ใช้ตัดสินใจว่าพวกเขาต้องการนำทางไปยังหน้าอื่นเพราะพวกเขาเบื่อที่จะรอพวกเขาไม่สามารถ! การล็อกเซสชัน ASP.Net บังคับให้มีการร้องขอหน้าใหม่เพื่อรอจนกว่าคำขอเดิมจะเสร็จสิ้นการโหลดช้าลงอย่างเจ็บปวด Arrrgh เมื่อใดก็ตามที่ UpdatePanel โหลดช้าและผู้ใช้ตัดสินใจที่จะนำทางไปยังหน้าอื่นก่อนที่ UpdatePanel จะอัปเดตเสร็จสิ้น ... พวกเขาไม่สามารถ! การล็อคเซสชันของ ASP.net บังคับให้คำขอหน้าใหม่รอจนกว่าคำขอเดิมจะเสร็จสิ้นการโหลดช้าลงอย่างเจ็บปวด Double Arrrgh! ดังนั้นตัวเลือกคืออะไร จนถึงตอนนี้ฉันก็เกิดขึ้นกับ: ใช้ Custom SessionStateDataStore ซึ่ง ASP.Net รองรับ ฉันไม่ได้พบมากที่นั่นเพื่อคัดลอกและดูเหมือนว่ามีความเสี่ยงสูงและง่ายต่อการเลอะ ติดตามคำขอทั้งหมดที่อยู่ระหว่างดำเนินการและหากมีคำขอมาจากผู้ใช้รายเดียวกันให้ยกเลิกคำขอเดิม ดูเหมือนจะสุดขีด แต่มันก็ใช้งานได้ อย่าใช้เซสชัน! เมื่อฉันต้องการสถานะบางอย่างสำหรับผู้ใช้ฉันก็สามารถใช้ Cache แทนและรายการสำคัญในชื่อผู้ใช้รับรองความถูกต้องหรือบางสิ่ง ดูเหมือนจะสุดโต่งอีกครั้ง ฉันไม่อยากจะเชื่อเลยว่าทีม ASP.Net Microsoft จะทิ้งคอขวดที่มีประสิทธิภาพอย่างมากในเฟรมเวิร์กในเวอร์ชัน 4.0! ฉันขาดอะไรที่ชัดเจนหรือไม่ การใช้คอลเลกชัน ThreadSafe …