Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在.NET应用程序中获取IIS应用程序名称_C#_.net_Iis - Fatal编程技术网

C# 在.NET应用程序中获取IIS应用程序名称

C# 在.NET应用程序中获取IIS应用程序名称,c#,.net,iis,C#,.net,Iis,我目前正在使用以下代码: <center>Application Name: <%=HostingEnvironment.ApplicationID %></center> “AppName”是我想要的值,我想知道是否有另一个方法可以简单地返回它,而不必使用字符串魔术来删除路径的其余部分 谢谢 您可以使用此例程获取完全限定的应用程序路径,context.Request.ApplicationPath将包含应用程序名称 /// <summary&

我目前正在使用以下代码:

<center>Application Name: <%=HostingEnvironment.ApplicationID %></center>
“AppName”是我想要的值,我想知道是否有另一个方法可以简单地返回它,而不必使用字符串魔术来删除路径的其余部分


谢谢

您可以使用此例程获取完全限定的应用程序路径,context.Request.ApplicationPath将包含应用程序名称

    /// <summary>
    /// Return full path of the IIS application
    /// </summary>
    public string FullyQualifiedApplicationPath
    {
        get
        {
            //Getting the current context of HTTP request
            var context = HttpContext.Current;

            //Checking the current context content
            if (context == null) return null;

            //Formatting the fully qualified website url/name
            var appPath = string.Format("{0}://{1}{2}{3}",
                                        context.Request.Url.Scheme,
                                        context.Request.Url.Host,
                                        context.Request.Url.Port == 80
                                            ? string.Empty
                                            : ":" + context.Request.Url.Port,
                                        context.Request.ApplicationPath);

            if (!appPath.EndsWith("/"))
                appPath += "/";

            return appPath;
        }
    }
//
///返回IIS应用程序的完整路径
/// 
公共字符串FullyQualifiedApplicationPath
{
得到
{
//获取HTTP请求的当前上下文
var context=HttpContext.Current;
//检查当前上下文内容
if(context==null)返回null;
//格式化完全限定的网站url/名称
var appPath=string.Format(“{0}://{1}{2}{3}”,
context.Request.Url.Scheme,
context.Request.Url.Host,
context.Request.Url.Port==80
?字符串。空
:“:”+context.Request.Url.Port,
context.Request.ApplicationPath);
如果(!appPath.EndsWith(“/”)
appPath+=“/”;
返回appPath;
}
}

根据您的IIS应用程序/站点结构的不同,其中一个应用程序/站点应该可以完成这项工作

HostingEnvironment.ApplicationHost.GetSiteName()

HostingEnvironment.ApplicationVirtualPath

new ServerManager().Sites;  //This is a List so you can iterate and match with a eliminating hint

再次重申,根据注释线程-
ApplicationHost。GetSiteName()
不打算在代码中使用(请参阅):

IAApplicationHost.GetSiteName方法() 此API支持产品基础架构,不打算 直接从代码中使用

改用

System.Web.Hosting.HostingEnvironment.SiteName;

ApplicationHost.GetSiteName()
不用于代码中(请参阅)。改为使用
System.Web.Hosting.HostingEnvironment.SiteName@EvilDr能否请您将此作为答复发送?我想投赞成票。
System.Web.Hosting.HostingEnvironment.SiteName;