I want to recycle the application pool through my application.
Previously I was storing the application pool name in my database and using that to recycle. But It ha
May this can help: ApplicationPoolName Property
Namespace: Microsoft.Web.Administration Assembly: Microsoft.Web.Administration (in Microsoft.Web.Administration.dll)
http://msdn.microsoft.com/en-us/library/microsoft.web.administration.application.applicationpoolname(v=vs.90).aspx
In many cases it might be enough to just read the name of the application pool from the environment variable:
var apppool = System.Environment.GetEnvironmentVariable(
"APP_POOL_ID", EnvironmentVariableTarget.Process);
Modified version of @Razon answer :)
public static string GetCurrentApplicationPoolName()
{
ServerManager manager = new ServerManager();
string DefaultSiteName = System.Web.Hosting.HostingEnvironment.ApplicationHost.GetSiteName();
Site defaultSite = manager.Sites[DefaultSiteName];
string appVirtualPath = HttpRuntime.AppDomainAppVirtualPath;
string appPoolName = string.Empty;
foreach (Application app in defaultSite.Applications)
{
string appPath = app.Path;
if (appPath == appVirtualPath)
{
appPoolName = app.ApplicationPoolName;
}
}
return appPoolName;
}