12

現在使用しているWebアプリケーション名を取得しようとしています(アプリケーションコードがIISに展開されている場合)。

IISサーバー名を取得できます。

string IISserverName = HttpContext.Current.Request.ServerVariables["SERVER_NAME"];

現在のWebサイト:

string currentWebSiteName = HostingEnvironment.ApplicationHost.GetSiteName();

Webアプリケーション名を取得する方法が見つかりません!どのWebアプリケーションであるかに応じて、すべての仮想ディレクトリを取得するためのパスを作成する必要があるためです。

4

2 に答える 2

24

10月23日の回答は、すべてのアプリでのみ繰り返されます。問題は、IISで実行されているアプリケーションから現在のアプリケーション名を取得する方法でした。皮肉なことに、上記の質問は私がそれに答えるのに役立ちました。

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
于 2013-11-13T21:00:22.170 に答える
5

次の参照をアプリケーションに追加します: "c:\ windows \ system32 \ inetsrv \ Microsoft.web.Administration.dll"

以下のコードを使用して、Webサイト名と適切なアプリケーション名を列挙します。

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);
    }
}
于 2012-10-23T07:21:23.940 に答える