[英]An Application which fetches IIS and App Pool details of website hosted in remote server
I got a task of creating an Web application in C# ,which fetches IIS and App Pool details of Website hosted in the remote server(same location).Any idea or help is well appreciated!!! 我有一个用C#创建Web应用程序的任务,该应用程序将获取托管在远程服务器(相同位置)中的网站的IIS和应用程序池详细信息。任何想法或帮助都非常感谢!!!
-Renji -仁治
This is somehow a broad question, but in order to help here are some points you can start from: 从某种程度上来说,这是一个广泛的问题,但是为了帮助您,请从以下几点开始:
System.Web.Hosting.HostingEnvironment.ApplicationHost.GetSiteName()
System.Web.Hosting.HostingEnvironment.ApplicationHost.GetSiteName()
I guess this is enough for you to start exploring everything related to IIS, hope it helps. 我想这足以让您开始探索与IIS相关的所有内容,希望对您有所帮助。
I was also having the same requirement. 我也有同样的要求。 On doing so many trail and error approach I got the result.
经过这么多的跟踪和错误处理,我得到了结果。
public static SortedDictionary<string,string> GetApplicationPoolNames ( string mname = null )
{
try
{
ServerManager manager = new ServerManager ();
SortedDictionary<string,string> ApplicationPoolStatus = new SortedDictionary<string,string> ();
if (string.IsNullOrEmpty (mname))
mname = System.Environment.MachineName;
string appPoolName = string.Empty;
manager = ServerManager.OpenRemote (mname);
ApplicationPoolCollection applicationPoolCollection = manager.ApplicationPools;
foreach (ApplicationPool applicationPool in applicationPoolCollection)
{
if (!string.IsNullOrEmpty (applicationPool.Name))
{
if (!ApplicationPoolStatus.ContainsKey (applicationPool.Name))
{
ApplicationPoolStatus.Add (applicationPool.Name,string.Empty);
}
ApplicationPoolStatus[applicationPool.Name] = applicationPool.State.ToString ();
}
}
return ApplicationPoolStatus;
}
catch (Exception)
{
throw;
}
}
public SortedDictionary<string,string> ShowApplicationPoolDatas ()
{
SortedDictionary<string,string> ApplicationPoolStatus = new SortedDictionary<string,string> ();
var domain = this.HttpContext.Request.Url.Host;
DirectoryEntry Services = new DirectoryEntry ("IIS://"+ domain + "/W3SVC/APPPOOLS");
foreach (DirectoryEntry Entry in Services.Children)
{
if (!string.IsNullOrEmpty (Entry.Name))
{
if (!ApplicationPoolStatus.ContainsKey (Entry.Name))
{
ApplicationPoolStatus.Add (Entry.Name,string.Empty);
}
}
var intStatus = (Int32)Entry.InvokeGet ("AppPoolState");
switch (intStatus)
{
case 2:
ApplicationPoolStatus[Entry.Name] = "Running";
break;
case 4:
ApplicationPoolStatus[Entry.Name] = "Stopped";
break;
default:
ApplicationPoolStatus[Entry.Name] = "Unknown";
break;
}
}
return ApplicationPoolStatus;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.