簡體   English   中英

使用 Microsoft.Web.Administration 將應用程序池添加到 iis C#

[英]Add Application Pool to iis C# using Microsoft.Web.Administration

我正在嘗試添加應用程序池。 我的代碼:

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

問題是我無法創建 object ApplicationPool。 原因可能是它繼承的 class 有一個受保護的內部構造函數。 並顯示此 class 的構造函數沒有此類重載的錯誤。

但我想我應該能夠以某種方式創建這個 class 的 object,因為 Add 方法接受這種類型的 object。 它有第二個重載,它接受一個字符串。

在此處輸入圖像描述

編輯:

它有效,但我不想這樣做

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM