2011-01-19 10 views
5

El código que he usado para obtener los módulos HTTP es básicamente¿Existe alguna forma mejor de obtener la sección de módulos adecuada de 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"); 

Esto funcionó bien hasta IIS7. El comando de migración %SystemRoot%\system32\inetsrv\appcmd migrate config "website/" mueve los módulos a system.webServer, por lo que mi código ahora está actualizando la sección incorrecta.

¿Existe un modo integrado para obtener la sección de módulo adecuada que debe modificarse? ¿O tengo que agregar un cheque para el Request.ServerVariables["SERVER_SOFTWARE"] y devolver system.web/system.webServer dependiendo de la cadena que obtengo?

+1

Aclare lo que está haciendo con la lista de módulos. –

+0

@John, creamos una nueva HttpModuleAction y luego la agregamos a la colección HttpModules. Actualizó la pregunta para mostrar un ejemplo más claro. – Brandon

+0

¿por qué está editando el web.config? Además, ¿de qué código estás haciendo esto? ¿El mismo sitio web que posee el web.config? –

Respuesta

1
HttpContext.Current.ApplicationInstance.Modules 

esto devuelve un objeto HttpModuleCollection. ¿O quieres saber how to programmatically register HttpModules at runtime?

+0

Gracias por la respuesta, pero que devuelve un HttpModuleCollection. Necesito HttpModulesSection para poder agregar/eliminar un módulo en el código. No creo que deba registrar los mdoules, solo necesito editar el web.config. – Brandon

Cuestiones relacionadas