我有一个远程停止/重启应用程序池/站点的应用程序,并检查应用程序池/站点的状态。目前,这些是使用DirectoryEntry类进行管理的,例如
private DirectoryEntry FindSite(int nPort)
{
using (var sites = new DirectoryEntry(string.Format(m_adSitesPath,m_RemoteServerName)))
{
sites.RefreshCache();
foreach (DirectoryEntry de in sites.Children)
{
de.RefreshCache();
if (de.SchemaClassName == "IIsWebServer")
{
string port = GetNullableDirMultiValuePart(de, "ServerBindings", 0, 1);
if (nPort == int.Parse(port))
{
return de;
}
}
}
}
return null;
}
这个方法在运行IIS 8的任何服务器上都失败了,在另一个问题上建议我应该开始使用Microsoft.Web.Administrator类。有人可以指出我正确的方向,以便我使用Microsoft.Web.Administrator命名空间获取Port的网站列表吗?
答案 0 :(得分:2)
示例代码如下,
var arr = [{
EmployeeInfo: [{
annualWage: "24000"
}],
name: "Tim",
surname: "Jones",
id: "1111"
}, {
EmployeeInfo: [{
annualWage: "52000"
}],
name: "Terry",
surname: "Phillips",
id: "2222"
}];
console.log(arr);
arr.sort(function (a, b) {
return parseFloat(a.EmployeeInfo[0].annualWage) - parseFloat(b.EmployeeInfo[0].annualWage);
});
console.log(arr);
MWA定义了强类型(private List<Site> FindSite(int nPort)
{
var result = new List<Site>();
var server = new ServerManager();
foreach (Site site in server.Sites)
{
foreach (Binding binding in site.Bindings)
{
if (binding.EndPoint.Port == port)
{
result.Add(site);
break;
}
}
}
return result;
}
,Site
等),而不是Binding
,它们与有意义的类型不对应。
你可以在这里找到课程参考,
https://msdn.microsoft.com/en-us/library/microsoft.web.administration(v=vs.90).aspx