1

我正在尝试类似的东西

  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 的帖子-

如何在 IIS 7 的 machine.config 中注册 HttpModule?

所以基本上在 ApplicationHostConfig 我需要去

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

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

1 回答 1

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();
于 2016-12-01T02:43:31.773 回答