更改应用程序池的属性
本文关键字:属性 程序池 应用程序 应用 | 更新日期: 2023-09-27 18:12:56
有没有办法让这段代码更漂亮?
ServerManager serverManager = new ServerManager();
ApplicationPoolCollection applicationPoolCollection = serverManager.ApplicationPools;
foreach (var site in serverManager.Sites)
{
//Trace.WriteLine("Site: {0}", site.Name);)
foreach (var app in site.Applications)
{
if (app.Path.EndsWith("Report") || app.Path.EndsWith("Data"))
{
Trace.WriteLine("ReportApi " + app.ApplicationPoolName);
applicationPoolCollection[app.ApplicationPoolName].Enable32BitAppOnWin64 = true;
applicationPoolCollection[app.ApplicationPoolName].ManagedRuntimeVersion = "v4.0";
}
}
}
serverManager.CommitChanges();
第二个问题,如果我在只有iis6的PC上运行它会发生什么
看起来很整洁。如果你想让事情变得平坦一点,你可以使用使事情更LINQy。它让事情对一些人更清晰,对另一些人更不透明。随你挑。Cast
扩展方法(它对IEnumerable
类型进行操作,将它们转换为IEnumerable<T>
)来
var reportOrDataApps = serverManager
.Sites
.Cast<Site>()
.SelectMany(s => s.Applications.Cast<Application>())
.Where(app => app.Path.EndsWith("Report") || app.Path.EndsWith("Data"))
foreach(var app in reportOrDataApps)
{
Trace.WriteLine("ReportApi " + app.ApplicationPoolName);
applicationPoolCollection[app.ApplicationPoolName].Enable32BitAppOnWin64 = true;
applicationPoolCollection[app.ApplicationPoolName].ManagedRuntimeVersion = "v4.0";
}
编辑:看起来集合已经实现了IEnumerable<T>
,所以你可以缩短LINQ:
var reportOrDataApps = serverManager
.Sites
.SelectMany(s => s.Applications)
.Where(app => app.Path.EndsWith("Report") || app.Path.EndsWith("Data"))