TransferRequest กับ Transfer ใน ASP.Net

ฉันได้ผ่านลิงค์ที่กล่าวถึงด้านล่าง

ฟอรัม iis และ ปัญหา HttpModules & Server.Transfer / Server.TransferRequest / RewritePath แต่ไม่สามารถเข้าใจแนวคิดเบื้องหลังวิธีการถ่ายโอนเหล่านี้ได้

พวกเขาทำงานอย่างไร? และอันไหนที่เหมาะกับสถานการณ์ที่แตกต่างกัน?

ใครช่วยอธิบายวิธี TransferRequest vs Transfer สำหรับการถ่ายโอนฝั่งเซิร์ฟเวอร์ใน asp.net และบทบาทของมันได้ไหม

ขอบคุณล่วงหน้า


person Sujit    schedule 21.02.2013    source แหล่งที่มา


คำตอบ (2)


HttpServerUtility.Transfer ยุติการดำเนินการของเพจปัจจุบัน และเริ่มการทำงานของ URL ที่ให้ไว้ โดยทั่วไปแล้วจะแมปและดำเนินการเพจ ASP.NET ใหม่ (หรือให้บริการไฟล์คงที่) ที่สอดคล้องกับ URL ที่ให้ไว้ โดยจะทำสิ่งนี้แบบแทนที่ในไปป์ไลน์คำขอปัจจุบัน โดยไม่ต้องใช้การกำหนดค่าใหม่กับ URL ใหม่ หรือเรียกใช้โมดูล IIS ใหม่สำหรับ URL ใหม่ ด้วยเหตุนี้จึงรวดเร็วมาก แต่ยังป้องกันสถานการณ์ต่างๆ มากมายที่เป็นไปได้ด้วย TRQ

HttpServerUtility.TransferRequest ดำเนินการแบบอะซิงโครนัสของ URL ที่ให้มา นี่คือคำขอย่อย IIS แบบเต็มภายใต้หน้าปก ซึ่งช่วยให้สามารถเรียกใช้ไปป์ไลน์คำขอทั้งหมดอีกครั้งสำหรับคำขอใหม่ราวกับว่าเป็นคำขอแยกต่างหาก ได้รับการกำหนดค่าที่ถูกต้อง และเรียกใช้โมดูล IIS ปกติทั้งหมด รวมถึง การรับรองความถูกต้อง การอนุญาต ฯลฯ ตัวอย่างเช่น IIS จะใช้กฎการอนุญาตสำหรับ URL ใหม่ ตรงข้ามกับ URL ก่อนหน้า

person Community    schedule 16.05.2013

TransferRequest เรียกใช้ไปป์ไลน์คำขอทั้งหมดอีกครั้ง ราวกับว่ามันเป็นคำขอแยกต่างหาก ซึ่งหมายความว่าโมดูล IIS และ ASP.NET จะถูกนำมาใช้ใหม่ กฎการตรวจสอบและการอนุญาตสำหรับ URL ใหม่จะได้รับการยอมรับ โปรดทราบว่า TransferRequest ต้องใช้โหมดไปป์ไลน์แบบรวมของ IIS 7+ และการถ่ายโอนสามารถไปที่เพจ ASP หรือทรัพยากรอื่น เช่น ไฟล์ XML

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

person Robert Claypool    schedule 30.03.2013