<โมดูล runAllManagedModulesForAllRequests =“ true” /> ความหมาย


133

ฉันอยากรู้ว่าอะไรคือความหมายของ

<modules runAllManagedModulesForAllRequests="true" />

ฉันใช้ IIS 7.5 และมีเว็บแอปพลิเคชันง่ายๆ ฉันต้องเขียนสิ่งนี้ในไฟล์ web.config หรือไม่ ฉันได้เขียนตัวจัดการ http สองสามตัวสำหรับการโทร jquery ajax ฉันใช้การพิสูจน์ตัวตนแบบฟอร์มและ asp.net 4.0

ฉันจะทราบได้อย่างไรว่าโมดูลใดที่ฉันต้องเรียกใช้และไม่ควรเป็นโมดูลใด

คำตอบ:


122

เงื่อนไขเบื้องต้นของโมดูล:

กลไกหลักของ IIS ใช้เงื่อนไขเบื้องต้นเพื่อกำหนดเวลาที่จะเปิดใช้งานโมดูลเฉพาะ ตัวอย่างเช่นเหตุผลด้านประสิทธิภาพอาจเป็นตัวกำหนดว่าคุณต้องการดำเนินการเฉพาะโมดูลที่มีการจัดการสำหรับคำขอที่ไปยังตัวจัดการที่มีการจัดการ เงื่อนไขเบื้องต้นในตัวอย่างต่อไปนี้ ( precondition="managedHandler") เปิดใช้งานโมดูลการพิสูจน์ตัวตนแบบฟอร์มสำหรับคำร้องขอที่จัดการโดยตัวจัดการที่มีการจัดการเช่นการร้องขอไปยังไฟล์. aspx หรือ. aspx:

<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />

หากคุณลบแอตทริบิวต์การprecondition="managedHandler"พิสูจน์ตัวตนแบบฟอร์มจะใช้กับเนื้อหาที่ไม่ได้ให้บริการโดยเครื่องจัดการที่มีการจัดการเช่น. html, .jpg, .doc แต่ยังใช้กับส่วนขยาย ASP (.asp) หรือ PHP (.php) แบบคลาสสิกด้วย ดู " วิธีการใช้ประโยชน์จาก IIS Integrated Pipeline " สำหรับตัวอย่างของการเปิดใช้งานโมดูล ASP.NET เพื่อเรียกใช้สำหรับเนื้อหาทั้งหมด

คุณยังสามารถใช้ทางลัดเพื่อเปิดใช้งานโมดูลที่มีการจัดการ (ASP.NET) ทั้งหมดเพื่อเรียกใช้สำหรับคำขอทั้งหมดในแอปพลิเคชันของคุณโดยไม่คำนึงถึง "managedHandlerเงื่อนไขเบื้องต้น ""

ในการเปิดใช้งานโมดูลที่มีการจัดการทั้งหมดเพื่อรันสำหรับคำร้องขอทั้งหมดโดยไม่ต้องกำหนดค่าแต่ละรายการของโมดูลเพื่อลบmanagedHandlerเงื่อนไขเบื้องต้น "" ให้ใช้runAllManagedModulesForAllRequestsคุณสมบัติใน<modules>ส่วน:

<modules runAllManagedModulesForAllRequests="true" />    

เมื่อคุณใช้คุณสมบัตินี้managedHandlerเงื่อนไขเบื้องต้น "" จะไม่มีผลและโมดูลที่มีการจัดการทั้งหมดจะรันสำหรับคำร้องขอทั้งหมด

คัดลอกจากภาพรวมโมดูล IIS: เงื่อนไขเบื้องต้น


เป็นการดีที่จะเรียกใช้โมเดลทั้งหมดสำหรับคำขอทั้งหมดหรือฉันจะเจาะจงมากกว่านั้น สิ่งนี้มีผลต่อความเร็วของแอปพลิเคชันหรือไม่?
शेखर

2
ใช่จะมีปัญหาด้านประสิทธิภาพ คุณควรใช้เงื่อนไขเบื้องต้นแทน
Kapil Khandelwal

3
แล้วฉันจะตัดสินใจได้อย่างไรว่าฉันต้องใช้โมดูลใดและไม่ควรใช้โมดูลใด
शेखर

6
คำถามติดตามผล ฉันเห็นว่าเป็นไปได้ที่จะเปิดใช้งานโมดูลแยกต่างหากเช่นกัน ดูคำถามของฉัน ( stackoverflow.com/questions/20998816/... ), <modules runAllManagedModulesForAllRequests="true">การแก้ปัญหาที่มีคือการเพิ่ม แต่ฉันเห็นว่าตอนนี้มันอาจสร้างค่าใช้จ่าย ดังนั้นมีโมดูลเฉพาะที่รับผิดชอบหรือไม่ที่ฉันสามารถเปิดใช้งานเพื่อรับจุด "" ใน MVC WebAPI Url แทนที่จะเปิดใช้งานทั้งหมดด้วย<modules runAllManagedModulesForAllRequests="true">? ตัวอย่างเช่นโมดูล "UrlAuthorization" หรือไม่
Yves Schelpe

การเพิ่มส่วนแท็กโมดูลเหมาะสำหรับฉัน ฉันใช้ MVC 5, .net framework 4.5.0, IIS 7 และ windows server 2008
gavin

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