C# 从多个服务器获取应用程序池IIS7
我正在尝试让所有应用程序池在IIS7服务器上运行。我想在网格中显示它们,并允许用户启动、停止或回收它们。这在使用DirectoryENtry的IIS6中非常有效,但在IIS7中不起作用。我将有4或5台服务器,我将需要通过并获取所有应用程序池。这是我的密码:C# 从多个服务器获取应用程序池IIS7,c#,asp.net,.net-4.0,frameworks,C#,Asp.net,.net 4.0,Frameworks,我正在尝试让所有应用程序池在IIS7服务器上运行。我想在网格中显示它们,并允许用户启动、停止或回收它们。这在使用DirectoryENtry的IIS6中非常有效,但在IIS7中不起作用。我将有4或5台服务器,我将需要通过并获取所有应用程序池。这是我的密码: using (SqlConnection myConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionSt
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);
以下是我收到的错误:
正在检索具有的远程组件的COM类工厂
来自机器的CLSID{2B72133B-3F5B-4602-8952-803546CE3344}
由于以下错误而失败:800706ba
问题在于
ServerManager.OpenRemote
方法在内部使用DCOM连接到远程服务器,默认情况下,DCOM使用的端口被windows防火墙阻止。由于DCOM使用TCP端口135和TCP端口1024/65335的动态范围,您需要更改远程计算机上IIS Admin COM+包的设置,以限制其端点仅使用一个TCP端口,而不是动态范围。你可以找到说明书
编辑
默认情况下,在Windows 2008+
ahadmin
pachage keyHKEY_LOCAL\u MACHINE\SOFTWARE\Classes\AppID\{9fa5c497-f46d-447f-8011-05d03d7d7ddc}
是只读的
适用于所有用户,但受信任的安装程序
您必须首先获得密钥的所有权,然后向希望更改管理员
软件包设置的用户授予完全控制
权限。请记住,更改包属性后,将密钥权限设置恢复为原始设置。是的,您需要打开防火墙,但不必为管理员设置固定端口。防火墙中需要三条规则。一个用于打开端口135(tcp),一个用于将本地端口设置为RPC动态端口的%SystemRoot%\System32\dllhost.exe,最后一个用于将本地端口设置为RPC Endpoint Mapper的%SystemRoot%\System32\dllhost.exe,它没有被接受的答案,只是以防万一那里的任何建议对你有帮助。它说的是哪个用户?我运行应用程序的用户?我想是这样的。否则,如果它转换为网络服务用户,我怀疑它将是计算机帐户。您将能够在远程计算机上的身份验证失败事件中查看用户详细信息(如果您已审核登录失败)。如果你在远程机器上看不到任何东西,我也看到一些与DCOM相关的东西需要允许通过防火墙。我正在浏览这些说明。但是,它看起来是灰色的。可能是集团政策。拥有注册密钥非常有效。非常感谢您的帮助。对于那些想知道…在更改COM对象后,您确实必须重新启动服务器的人,请参考。