如何在Azure 2.5的IIS应用程序中设置和使用环境变量

本文关键字:设置 环境变量 应用程序 IIS Azure | 更新日期: 2023-09-27 18:13:01

目前我希望我的日志文件被删除在特定的位置。有没有一种方法,我可以得到我的IIS应用程序的环境变量在Global.asax.cs

private string GetLoggingPath()
        {
            string rootFolder = string.Empty;
            var directoryInfo = new DirectoryInfo(HttpContext.Current.Server.MapPath("~/")).Parent;
            if (directoryInfo != null)
            {
                if (directoryInfo.Parent != null)
                {
                    rootFolder = directoryInfo.Parent.FullName;
                }
            }
            if (string.IsNullOrWhiteSpace(rootFolder))
            {
                return Path.GetTempPath();
            }
            return Path.Combine(rootFolder, @"approot'bin'Data");
        }

我正在查看RoleRoot环境变量,但即使应用程序在Azure上运行,它也不可用。

我如何在azure中设置环境变量,以便我可以在IIS应用程序中使用?什么是最好的方式,我得到文件夹E:'approot'bin'data没有硬编码,其中E:'是rolerroot文件夹

如何在Azure 2.5的IIS应用程序中设置和使用环境变量

没有很好的方法,似乎环境变量没有在w3wp.exe进程中设置,但是如何仅使用以下内容:

System.IO.Path.Combine(
    System.IO.Path.GetPathRoot(
        System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath
    ),
    @"approot'bin'Data"
); 

(与您的基本相同,但没有创建DirectoryInfo)。

使用进程资源管理器查看进程,我可以看到只有IISConfigurator.exe具有RoleRoot环境变量,因此一个选项是您可以使用apppcmd .exe在启动任务期间将其设置在某些配置文件中。配置或applicationHost。配置,然后从那里读取。

但老实说,我只会使用上面的代码