Добавьте пул приложений в iis C#, используя Microsoft.Web.Administration - PullRequest
0 голосов
/ 23 апреля 2020

Я пытаюсь добавить пул приложений. Мой код:

ServerManager iis = new ServerManager();
iis.ApplicationPools.Add(new ApplicationPool() {Name= "My Pool",
AutoStart=true,ManagedRuntimeVersion="v4.0", ManagedPipelineMode=ManagedPipelineMode.Integrated });

Проблема в том, что я не могу создать объект ApplicationPool. Возможно, причина в том, что класс, который он наследует, имеет защищенный внутренний конструктор. И отображается ошибка, что для этого класса нет такой перегрузки конструктора.

Но я думаю, что я должен как-то создать объект этого класса, потому что метод Add принимает этот тип объекта. У него есть вторая перегрузка, где он принимает строку.

enter image description here

Редактировать:

Это работает, но я не хочу делать это так

iis.ApplicationPools.Add("My poll");
foreach (ApplicationPool item in applicationPool)
{
    if (item.Name == "My poll")
    {
         item.AutoStart = true;
         item.ManagedRuntimeVersion = "v4.0";
         item.ManagedPipelineMode = ManagedPipelineMode.Integrated;
         iis.CommitChanges();
    }
}

Я нахожу это:

var item = iis.ApplicationPools.Add("My poll");
item.AutoStart = true;
item.ManagedRuntimeVersion = "v4.0";
item.ManagedPipelineMode = ManagedPipelineMode.Integrated;
item.Enable32BitAppOnWin64 = true;

1 Ответ

1 голос
/ 24 апреля 2020

Вы можете попробовать использовать следующий код:

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample {

    private static void Main() {

        using(ServerManager serverManager = new ServerManager()) { 
            Configuration config = serverManager.GetApplicationHostConfiguration();

            ConfigurationSection applicationPoolsSection = config.GetSection("system.applicationHost/applicationPools");

            ConfigurationElementCollection applicationPoolsCollection = applicationPoolsSection.GetCollection();

            ConfigurationElement addElement = applicationPoolsCollection.CreateElement("add");
            addElement["name"] = @"pool1";
            addElement["managedRuntimeVersion"] = @"v4.0";
            applicationPoolsCollection.Add(addElement);

            serverManager.CommitChanges();
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...