我正在尝试让所有应用程序池在 IIS7 服务器上运行。我想在网格中显示这些并允许用户启动、停止或回收它们。这在使用 DirectoryENtry 的 IIS6 中效果很好,但不适用于 IIS7。我将需要通过 4 或 5 台服务器并获取所有应用程序池。这是我的代码:
using (SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString))
{
myConnection.Open();
SqlCommand cmd = new SqlCommand("SELECT ServerIP FROM Servers WHERE AppPoolIIS7='Y' AND Domain='LAN'", myConnection);
SqlDataReader rdr = cmd.ExecuteReader();
if (rdr.HasRows)
{
while (rdr.Read())
{
string serverIP = rdr["ServerIP"].ToString();
ServerManager sm = new ServerManager(serverIP);
ApplicationPoolCollection appPoolColl = sm.ApplicationPools;
foreach (ApplicationPool appPool in appPoolColl)
{
}
}
}
else
{
}
}
单步执行代码时,我的第一台服务器已成功从数据库中检索到,但是当我尝试将 serverIP 传递给服务器管理器时,出现以下错误。
文件名:\?\10.0.22.22 错误:无法读取配置文件
为什么将 \?\ 添加到我的 IP 中?
编辑:我对代码进行了一些更改,但出现了不同的错误。
ServerManager sm = ServerManager.OpenRemote(serverIP);
这是我收到的错误:
由于以下错误,从计算机检索具有 CLSID {2B72133B-3F5B-4602-8952-803546CE3344} 的远程组件的 COM 类工厂失败:800706ba