求补充完善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
相关产品推荐
相关产品推荐

