You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求补充完善ASP.NET Core IIS环境变量常量类的文档

IIS相关ASP.NET Core环境变量常量整理

我一直在寻找获取HttpRequest.PathBase默认值的方法,由于该值配置在applicationhost.config中,很快意识到它必须通过托管环境提供,最终发现对应的环境变量为ASPNETCORE_APPL_PATH。

然而,我始终找不到能提供所有IIS相关ASP.NET Core环境变量常量键及对应说明的类、NuGet包或微软官方文档,这次搜索的成功率堪比马斯克Cybertruck发布会的防弹玻璃,因此我决定自行编写一个包含这些常量的类:

(希望能帮到其他人...)

/// <summary>
/// 提供环境变量的键值定义
/// </summary>
public static class C_Env
{
    /// <summary>
    /// 获取指定环境变量的对应值
    /// </summary>
    /// <returns>环境变量的字符串值</returns>
    public static string Envalue(this string environmentKey)
    {
        try
        {
            return System.Environment.GetEnvironmentVariable(environmentKey);
        }
        catch (Exception)
        {
            return null;
        }
    }

    /// <summary>
    /// 提供ASP.NET Core专属的环境变量键值,包含.NET 5及以上版本适用项。<br/>
    /// 遗憾的是目前没有任何官方文档记录这些内容... 简直离谱。<br/>
    /// 调试时可调用 <c>System.Environment.GetEnvironmentVariables();</c> 查看所有环境变量。
    /// </summary>
    public static class AspNetCore 
    {
        /// <summary>
        /// 应用默认路径基址对应的环境变量键。<br/>
        /// 该路径基址可通过 HttpRequest.PathBase 获取。<br/>
        /// 可查看IIS站点配置文档了解更多细节。
        /// </summary>
        /// <returns>默认路径基址的字符串值</returns>
        public const string DefaultPathBase = "ASPNETCORE_APPL_PATH";

        /// <summary>
        /// IIS WebSocket支持状态对应的环境变量键。<br/>
        /// 可查看IIS WebSocket协议支持文档了解更多细节。
        /// </summary>
        /// <returns>布尔值,表示当前环境是否支持IIS WebSocket</returns>
        public const string WebSocketSupport = "ASPNETCORE_IIS_WEBSOCKETS_SUPPORTED";

        /// <summary>
        /// IIS应用程序物理路径对应的环境变量键。<br/>
        /// 可查看IIS站点配置文档了解更多细节。
        /// </summary>
        /// <returns>物理路径的字符串值</returns>
        public const string PhysicalPath = "ASPNETCORE_IIS_PHYSICAL_PATH";

        /// <summary>
        /// IIS HTTP认证类型对应的环境变量键。<br/>
        /// 可查看IIS认证配置文档了解更多细节。
        /// </summary>
        /// <returns>认证类型的字符串值</returns>
        public const string HttpAuth = "ASPNETCORE_IIS_HTTPAUTH";

        /// <summary>
        /// 应用IIS HTTPS端口对应的环境变量键。
        /// </summary>
        /// <returns>HTTPS端口的整数值</returns>
        public const string HttpsPort = "ASPNETCORE_HTTPS_PORT";

        /// <summary>
        /// ASP.NET Core端口对应的环境变量键。
        /// </summary>
        /// <returns>ASP.NET Core端口的整数值</returns>
        public const string AspNetCorePort = "ASPNETCORE_PORT"; // 这到底是啥?备用端口?

        /// <summary>
        /// Web应用内容根路径对应的环境变量键。<br/>
        /// 该路径可通过 IHostingEnvironment.ContentRootPath 获取。<br/>
        /// 可查看IIS站点配置文档了解更多细节。
        /// </summary>
        /// <returns>内容根路径的字符串值</returns>
        public const string ContentRootPath = "ASPNETCORE_CONTENTROOT";

        /// <summary>
        /// IIS的ASP.NET Core模块HTTPS端口对应的环境变量键。<br/>
        /// 可查看ASP.NET Core模块文档了解更多细节。
        /// </summary>
        /// <returns>ASP.NET Core模块HTTPS端口的整数值</returns>
        public const string AncmHttpsPort = "ASPNETCORE_ANCM_HTTPS_PORT";

        /// <summary>
        /// ASP.NET Core令牌对应的环境变量键。
        /// </summary>
        /// <returns>ASP.NET Core令牌的GUID值</returns>
        public const string Token = "ASPNETCORE_TOKEN"; // 这是干啥用的?Bearer令牌相关?

        /// <summary>
        /// ASP.NET Core环境标识对应的环境变量键。(示例:"Development"、"Staging")<br/>
        /// 可查看ASP.NET Core环境配置文档了解更多细节。
        /// </summary>
        /// <returns>ASP.NET Core环境标识的字符串值</returns>
        public const string Environment = "ASPNETCORE_ENVIRONMENT";

        /// <summary>
        /// ASP.NET Core托管启动程序集对应的环境变量键。<br/>
        /// 可查看ASP.NET Core平台特定配置文档了解更多细节。
        /// </summary>
        /// <returns>托管启动程序集的字符串值</returns>
        public const string HostingStartupAssemblies = "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES";
    }
}

遗憾的是,我仍未弄清部分变量的完整信息,恳请各位技术大佬帮忙补充完善这份列表及相关文档说明。

内容的提问来源于stack exchange,提问作者Canabale

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 23:51:05