Azure WebJob不会在VS 2015中运行?

时间:2017-06-30 17:48:50

标签: c# .net azure azure-webjobs

我是Azure WebJobs开发的新手,我正在尝试在Visual Studio中测试我的WebJob。我的工作连续运行,但不执行runWebJob()方法?我在host.CallAsync行中指定的。这是我的代码:

public class Program {
    static void Main()
    {
        var config = new JobHostConfiguration();

        if (config.IsDevelopment)
        {
            config.UseDevelopmentSettings();
        }
        var host = new JobHost(config);

        host.CallAsync(typeof(Program).GetMethod("runWebJob"));
        // The following code ensures that the WebJob will be running continuously
        host.RunAndBlock();

    }

    [NoAutomaticTrigger]
    public static async Task runWebJob()
    {
        Console.WriteLine("RUNNING METHOD"); 
    }
}

1 个答案:

答案 0 :(得分:2)

我测试了你提到的代码。我们需要设置类程序 公共。然后它应该工作。

由于您的异步功能没有等待,我添加等待测试。

public class Program
{
    static void Main(string[] args)
    {

        var config = new JobHostConfiguration();

        if (config.IsDevelopment)
        {
            config.UseDevelopmentSettings();
        }
        var host = new JobHost();

        host.CallAsync(typeof(Program).GetMethod("runWebJob"));
        // The following code ensures that the WebJob will be running continuously
        host.RunAndBlock();

    }
    [NoAutomaticTriggerAttribute]
    public static async Task runWebJob()
    {
        await Task.Delay(1000); //just for test
        Console.WriteLine("RUNNING METHOD");
    }

我在我这边测试。

enter image description here

注意:如果您将host.CallAsync(typeof(Program).GetMethod("runWebJob"))更改为host.Call(typeof(Program).GetMethod("runWebJob"))并将功能更改为同步功能,则可以看到详细错误。

enter image description here

<强>更新

默认情况下,WebJobs SDK会查找名为AzureWebJobsStorage和AzureWebJobsDashboard的连接字符串

如果您还没有在app.config文件中添加以下连接字符串,请尝试添加它。更多详情请参阅document

 <connectionStrings>
        <add name="AzureWebJobsDashboard" connectionString="DefaultEndpointsProtocol=https;AccountName=[accountname];AccountKey=[accesskey]"/>
        <add name="AzureWebJobsStorage" connectionString="DefaultEndpointsProtocol=https;AccountName=[accountname];AccountKey=[accesskey]"/>
</connectionStrings>