2011-01-19 11 views
5

Il codice che ho usato per ottenere i moduli HTTP è fondamentalmenteC'è un modo migliore per ottenere la sezione dei moduli corretta da web.config?

HttpModulesSection modules = ((SystemWebSectionGroup)config.GetSectionGroup("system.web")).HttpModules; 
// Depending on what we need to do... 
//modules.Modules.Add(CreateSomeModule()); 
//modules.Modules.Remove("SomeOtherModule"); 

Ciò ha funzionato benissimo in su fino IIS7. Il comando di migrazione %SystemRoot%\system32\inetsrv\appcmd migrate config "website/" sposta i moduli in system.webServer, pertanto il mio codice sta aggiornando la sezione errata.

C'è un modo integrato per ottenere la sezione del modulo corretta che dovrebbe essere modificata? O devo aggiungere un assegno per lo Request.ServerVariables["SERVER_SOFTWARE"] e restituire system.web/system.webServer a seconda della stringa che torno?

+1

Si prega di chiarire cosa si sta facendo con l'elenco dei moduli. –

+0

@John, creiamo una nuova HttpModuleAction e quindi la aggiungiamo alla raccolta HttpModules. Aggiornata la domanda per mostrare un esempio più chiaro. – Brandon

+0

perché stai modificando il web.config? Inoltre, da che codice stai facendo questo? Lo stesso sito web che possiede il web.config? –

risposta

1
HttpContext.Current.ApplicationInstance.Modules 

questo restituisce un oggetto HttpModuleCollection. O vuoi sapere how to programmatically register HttpModules at runtime?

+0

Grazie per la risposta, tuttavia che restituisce un HttpModuleCollection. Ho bisogno di HttpModulesSection per poter aggiungere/rimuovere un modulo nel codice. Non credo di dover registrare i mdoules, ho solo bisogno di modificare il web.config. – Brandon

Problemi correlati