我需要从同一域上的另一台机器监视 IIS 7 的应用程序池中的应用程序的状态。我的监控应用程序必须使用 C# 并作为 Windows 服务运行。
在我的服务器上,我创建了一个具有管理权限的用户,并执行了aspnet_regiis -ga machine\username
成功运行的命令。
我的问题是当我尝试访问应用程序池时,我仍然收到 COMExcepttion“拒绝访问”。我做错了什么或错过了哪一步?
我使用来自http://patelshailesh.com/index.php/create-a-website-application-pool-programmatically-using-csharp的代码作为示例。
int status = 0;
string ipAddress = "10.20.2.13";
string username = "username";
string password = "password";
try
{
DirectoryEntry de = new DirectoryEntry(string.Format("IIS://{0}/W3SVC/AppPools/MyAppPoolName", ipAddress), username, password);
//the exception is thrown here.
status = (int)de.InvokeGet("AppPoolState");
switch (status)
{
case 2:
//Running
break;
case 4:
//Stopped
break;
default:
break;
}
}
catch (Exception ex)
{
}