Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.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
C# 以编程方式更改应用程序的AppPool_C#_Iis 7 - Fatal编程技术网

C# 以编程方式更改应用程序的AppPool

C# 以编程方式更改应用程序的AppPool,c#,iis-7,C#,Iis 7,我需要更改某个网站下所有/选定应用程序的应用程序池。 我的IIS上有所有网站和应用程序池,但我无法更改它们。 有什么想法吗 这是我到目前为止所做的。。。 我觉得很奇怪,因为只有字符串在变化,而不是对象 private void ChangeAppPool() { Microsoft.Web.Administration.Site site = (Microsoft.Web.Administration.Site)this.websiteList.SelectedItem; Mic

我需要更改某个网站下所有/选定应用程序的应用程序池。 我的IIS上有所有网站和应用程序池,但我无法更改它们。 有什么想法吗

这是我到目前为止所做的。。。 我觉得很奇怪,因为只有字符串在变化,而不是对象

private void ChangeAppPool()
{
    Microsoft.Web.Administration.Site site = (Microsoft.Web.Administration.Site)this.websiteList.SelectedItem;
    Microsoft.Web.Administration.ApplicationPool appPool = (Microsoft.Web.Administration.ApplicationPool)this.appPoolCombo.SelectedItem;

    site.Stop();
    site.ApplicationDefaults.ApplicationPoolName = appPool.Name;

    foreach (var item in site.Applications)
    {
        item.ApplicationPoolName = appPool.Name;
    }

    site.Start();
    appPool.Recycle();
}

我修改了给定的代码以使用class,因为您的代码不适合我。(这个.websiteList.SelectedItem是什么??将字符串转换到站点?)


selectedItem就是这个对象。通过组合框选择。谢谢你的回答!
ServerManager serverManager = new ServerManager();
Site site = serverManager.Sites[0]; // get site by Index or by siteName
ApplicationPool appPool = serverManager.ApplicationPools[1]; // get appPool by Index or by appPoolName

site.Stop();
site.ApplicationDefaults.ApplicationPoolName = appPool.Name;

foreach (var item in site.Applications)
{
    item.ApplicationPoolName = appPool.Name;
}

serverManager.CommitChanges();  // this one is crucial!!! see MSDN: 
// Updates made to configuration objects must be explicitly written to the configuration 
// system by using the CommitChanges method!!
site.Start();
appPool.Recycle();