2011-01-19 2 views
5

код я использовал, чтобы получить модули HTTP в основномЕсть ли лучший способ получить соответствующий раздел модулей из 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"); 

Это работало отлично до тех пор IIS7. Команда перенастройки %SystemRoot%\system32\inetsrv\appcmd migrate config "website/" перемещает модули в system.webServer, поэтому мой код теперь обновляет неправильный раздел.

Есть ли встроенный способ получения соответствующей секции модуля, которая должна быть изменена? Или мне нужно добавить чек на Request.ServerVariables["SERVER_SOFTWARE"] и вернуть system.web/system.webServer в зависимости от строки, которую я возвращаю?

+1

Просьба пояснить, что вы делаете, со списком модулей. –

+0

@John, мы создаем новый HttpModuleAction, а затем добавляем его в коллекцию HttpModules. Обновлен вопрос, чтобы показать более четкий пример. – Brandon

+0

Почему вы редактируете web.config? Кроме того, какой код вы делаете? Тот же веб-сайт, которому принадлежит web.config? –

ответ

1
HttpContext.Current.ApplicationInstance.Modules 

это возвращает объект HttpModuleCollection. Или вы хотите знать how to programmatically register HttpModules at runtime?

+0

Спасибо за ответ, однако он возвращает HttpModuleCollection. Мне нужно HttpModulesSection, чтобы я мог добавить/удалить модуль в коде. Я не верю, что мне нужно зарегистрировать mdoules, мне просто нужно отредактировать файл web.config. – Brandon

Смежные вопросы