2016-11-29 10 views
1

Я пытаюсь что-то вродеКак добавить HttpModule в ApplicationHost.config для всех сайтов на сервере IIS с C#?

public string[] RegisterInApplicationConfig() 
    { 
     using (ServerManager serverManager = new ServerManager()) 
     { 
      Configuration config = serverManager.GetApplicationHostConfiguration(); 
      var section = config.GetSection("location/system.webServer/modules"); 

     } 
    } 

но ошибка я получаю -

Конфигурация секции location/system.webServer/modules не может быть прочитан, так как он отсутствует раздел декларации.

Я имею в виду пост от добавить HttpModule -

How do I register a HttpModule in the machine.config for IIS 7?

Так в основном ApplicationHostConfig мне нужно, чтобы добраться до

<location path="" overrideMode="Allow"> 
    <system.webServer> 

    <modules> 
     <add name="IsapiFilterModule" lockItem="true" /> 

ответ

1

Так что я нашел решение после того, как некоторые попали & испытания. Может кому-то помочь в перспективных

мне нужно сделать GetCollection в разделе «system.webServer/modules»

Configuration config = serverManager.GetApplicationHostConfiguration(); 
      var section = config.GetSection("system.webServer/modules", ""); 
      var collection = section.GetCollection(); 
      var element = collection.CreateElement(); 
      element.Attributes["name"].Value = "MyHttpModule"; 
      element.Attributes["type"].Value = MyHttpModule.XXXModule, MyHttpModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=bc88fbd2dc8888795"; 
      collection.Add(element); 
      serverManager.CommitChanges();