Проверьте состояние пула приложений (IIS 6) с помощью C#
Как я могу проверить состояние пула приложений IIS6 с C#? Например, я хочу знать, работает ли он или нет! Заранее спасибо за помощь!
2 ответа
Решение
http://msdn.microsoft.com/en-us/library/ms524962.aspx
Вы можете сделать это, проверяя свойство AppPoolState:
protected void status()
{
string appPoolName = "dev.somesite.com";
string appPoolPath = @"IIS://" + System.Environment.MachineName + "/W3SVC/AppPools/" + appPoolName;
int intStatus = 0;
try
{
DirectoryEntry w3svc = new DirectoryEntry(appPoolPath);
intStatus = (int)w3svc.InvokeGet("AppPoolState");
switch (intStatus)
{
case 2:
lblStatus.Text = "Running";
break;
case 4:
lblStatus.Text = "Stopped";
break;
default:
lblStatus.Text = "Unknown";
break;
}
}
Я думаю, что вам нужны услуги WMI (Windows Management Instrumentation)
Существует несколько статей о том, как управлять IIS с помощью WMI через vbscript, например
http://learn.iis.net/page.aspx/163/managing-applications-and-application-pools-on-iis-70-with-wmi/
Если вы возьмете одну из этих статей, вы сможете легко адаптировать ее к C#.