c# - 如何获取azure webjob/console应用程序的当前路径

标签 c# azure

我正在创建一个azure webjob(控制台应用程序),我需要获取可执行文件的当前路径。

完整的代码在这里:

   public static void ActivateFeatures(ClientContext cc)
    {
        XMLFileSystemTemplateProvider provider = new XMLFileSystemTemplateProvider(@"C:\Users\Esteban\Documents\visual studio 2013\Projects\ConsoleApplication1\ConsoleApplication1\Template", "");

        //XMLFileSystemTemplateProvider provider = new XMLFileSystemTemplateProvider(AppDomain.CurrentDomain.BaseDirectory + @"\\Template\\", "");
        //XMLFileSystemTemplateProvider provider = new XMLFileSystemTemplateProvider(Path.Combine(Environment.GetEnvironmentVariable("WEBROOT_PATH"), "Template"), ""); 
        string templateName = "features.xml";

        // Load the template
        ProvisioningTemplate p2 = provider.GetTemplate(templateName);

        // Apply template to existing site
        try
        {
            cc.Web.ApplyProvisioningTemplate(p2);
        }
        catch (Exception ex)
        {
            System.Diagnostics.Trace.TraceError(ex.Message);
        }
        System.Diagnostics.Trace.TraceInformation("App installed finished");
    }

我的一个 friend 告诉我这条线可以在 azure 上工作,但是当我在本地测试它时它不起作用

XMLFileSystemTemplateProvider provider = new XMLFileSystemTemplateProvider(Path.Combine(Environment.GetEnvironmentVariable("WEBROOT_PATH"), "Template"), ""); 

当我使用第二行时,我得到一个值不能为空异常。

http://screencast.com/t/4tj8YelW

我所需要的只是一行: 1.我不必硬编码 2. 它应该可以在本地运行,但也可以在部署到 Azure 时运行。

最佳答案

您可以使用以下环境变量:

WEBJOBS_PATH - 当前运行的 WebJob 的临时位置(WebJob 二进制文件复制到此处,以防止在使用新二进制文件更新 WebJob 时出现锁定问题)。

WEBROOT_PATH - wwwroot 的路径。

WEBJOBS_TYPE - 当前运行的 WebJob 的类型。

WEBJOBS_NAME - 当前运行的 WebJob 的名称。

因此,您可以使用 %WEBROOT_PATH%\App_Data\jobs\%WEBJOBS_TYPE%\%WEBJOBS_NAME% 获取 WebJob 二进制文件路径,请注意,对此目录的任何更改都将导致重新启动 WebJob (因为它已更改)。

关于c# - 如何获取azure webjob/console应用程序的当前路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29612155/

相关文章:

c# - 大文件处理 - 读取算法中断 - C#

c# - 相同的声音重叠,因此声音很大。提示与技巧?

亚马逊产品广告 API 的 C# 库

c# - 我应该处理 XmlNodeList

c# - C#.NET 项目中我们真的需要 ApplicationInsights.config 文件吗?

Azure CDN从后端获取数据

c# - 在 Swagger UI 中指示复杂输入参数对象的必需属性

azure - 使用 Azure 逻辑应用在存储帐户容器中创建新文件夹时动态获取 Blob 内容

azure - 为什么我的 Azure 分析服务需要 Azure 本地数据网关?

c# - 存储要在 Azure 角色之间共享的静态文件