Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Microsoft.Web.Administration将应用程序池添加到iis C#_C#_Iis - Fatal编程技术网

使用Microsoft.Web.Administration将应用程序池添加到iis C#

使用Microsoft.Web.Administration将应用程序池添加到iis C#,c#,iis,C#,Iis,我正在尝试添加应用程序池。我的代码: ServerManager iis = new ServerManager(); iis.ApplicationPools.Add(new ApplicationPool() {Name= "My Pool", AutoStart=true,ManagedRuntimeVersion="v4.0", ManagedPipelineMode=ManagedPipelineMode.Integrated }); 问题是我无法创建对象应用程序池。原因可能是它继承

我正在尝试添加应用程序池。我的代码:

ServerManager iis = new ServerManager();
iis.ApplicationPools.Add(new ApplicationPool() {Name= "My Pool",
AutoStart=true,ManagedRuntimeVersion="v4.0", ManagedPipelineMode=ManagedPipelineMode.Integrated });
问题是我无法创建对象应用程序池。原因可能是它继承的类具有受保护的内部构造函数。并且错误显示为该类的构造函数没有此类重载

但是我认为我应该能够以某种方式创建这个类的对象,因为Add方法接受这种类型的对象。它有第二个重载,在这里它接受一个字符串

编辑:

这是可行的,但我不想这样做

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;

您可以尝试使用以下代码

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();
        }
    }
}

“我不想要”从来不是一个有效的借口。我找到了另一个解决方案,但也没关系。@SilnyToJa如果你的问题解决了,那么我请求你将有用的建议标记为答案。这将帮助其他面临同样问题的人。