<modules runAllManagedModulesForAllRequests = “true” /> Significato


133

Volevo sapere qual è il significato di

<modules runAllManagedModulesForAllRequests="true" />

Sto usando IIS 7.5 e ho una semplice applicazione web. Devo scrivere questo nel mio file web.config. Ho anche scritto alcuni gestori http per la chiamata ajax jquery. Sto utilizzando l'autenticazione tramite modulo e asp.net 4.0.

Come posso determinare quale modulo devo eseguire e quale non deve essere?

Risposte:


122

Requisiti dei moduli:

Il motore principale di IIS utilizza i presupposti per determinare quando abilitare un determinato modulo. I motivi delle prestazioni, ad esempio, potrebbero determinare che si desidera eseguire moduli gestiti solo per richieste che vanno anche a un gestore gestito. Il presupposto nell'esempio seguente ( precondition="managedHandler") abilita il modulo di autenticazione dei moduli solo per le richieste gestite anche da un gestore gestito, come le richieste ai file .aspx o .asmx:

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

Se si rimuove l'attributo precondition="managedHandler", Autenticazione moduli si applica anche al contenuto che non viene offerto dai gestori gestiti, come .html, .jpg, .doc, ma anche per le estensioni ASP (.asp) o PHP (.php) classiche. Vedere " Come trarre vantaggio dalla pipeline integrata IIS " per un esempio dell'abilitazione dei moduli ASP.NET per tutto il contenuto.

È inoltre possibile utilizzare un collegamento per abilitare l'esecuzione di tutti i moduli gestiti (ASP.NET) per tutte le richieste nell'applicazione, indipendentemente dal " managedHandler" presupposto.

Per abilitare l'esecuzione di tutti i moduli gestiti per tutte le richieste senza configurare ciascuna voce del modulo per rimuovere la " managedHandler" condizione preliminare, utilizzare la runAllManagedModulesForAllRequestsproprietà nella <modules>sezione:

<modules runAllManagedModulesForAllRequests="true" />    

Quando si utilizza questa proprietà, il " managedHandler" presupposto non ha alcun effetto e tutti i moduli gestiti vengono eseguiti per tutte le richieste.

Copiato dai moduli IIS Panoramica: precondizioni


è bello eseguire tutti i modelli per tutte le richieste o sarò più specifico laggiù. Ciò influisce sulla velocità dell'applicazione?
शेखर

2
Sì, ci saranno problemi di prestazioni. Dovresti usare invece i presupposti.
Kapil Khandelwal,

3
allora come dovrei decidere quale modulo devo usare e quale no.
शेखर

6
Una domanda di follow-up. Vedo che è possibile abilitare anche moduli separati, al posto di tutti. Vedi la mia domanda ( stackoverflow.com/questions/20998816/… ), la soluzione che c'era da aggiungere <modules runAllManagedModulesForAllRequests="true">. Ma ora vedo che potrebbe creare sovraccarico. Quindi, c'è un modulo specifico responsabile che posso abilitare per ottenere il punto "." in MVC WebAPI Url, invece di abilitarli tutti con <modules runAllManagedModulesForAllRequests="true">? È ad esempio il modulo "UrlAuthorization"?
Yves Schelpe,

l'aggiunta della sezione tag dei moduli funziona per me. Uso MVC 5, .net framework 4.5.0, IIS 7 e windows server 2008
gavin

-9

aggiungi sotto il codice in web.config

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer> 

4
perché vorrei aggiungere?
Giovedì
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.