我正在尝试获取我当前所在的Web应用程序名称。(我的应用程序代码部署在IIS中)。
我可以获取IIS服务器名称:
string IISserverName = HttpContext.Current.Request.ServerVariables["SERVER_NAME"];
当前网站:
string currentWebSiteName = HostingEnvironment.ApplicationHost.GetSiteName();
我找不到获取Web应用程序名称的方法!因为我需要根据我的Web应用程序构建一个路径来获取所有虚拟目录。
答案 0 :(得分:18)
10月23日回答只会遍历所有应用。问题是如何从IIS上运行的应用程序获取CURRENT应用程序名称。具有讽刺意味的是,上面的问题帮我解答了。
using Microsoft.Web.Administration;
using System.Web.Hosting;
ServerManager mgr = new ServerManager();
string SiteName = HostingEnvironment.ApplicationHost.GetSiteName();
Site currentSite = mgr.Sites[SiteName];
//The following obtains the application name and application object
//The application alias is just the application name with the "/" in front
string ApplicationAlias = HostingEnvironment.ApplicationVirtualPath;
string ApplicationName = ApplicationAlias.Substring(1);
Application app = currentSite.Applications[ApplicationAlias];
//And if you need the app pool name, just use app.ApplicationPoolName
答案 1 :(得分:3)
将以下引用添加到您的应用程序:" c:\ windows \ system32 \ inetsrv \ Microsoft.web.Administration.dll"
并使用下面的代码枚举网站名称和相应的应用程序名称。
using Microsoft.Web.Administration;
//..
var serverManager = new ServerManager();
foreach (var site in serverManager.Sites)
{
Console.WriteLine("Site: {0}", site.Name);
foreach (var app in site.Applications)
{
Console.WriteLine(app.Path);
}
}