正在运行的Web作业在启动时给出ArgumentNullException

问题描述 投票:1回答:1

我正在开发Azure Webjob,但是当我运行此本地设置时,在启动后会遇到此异常。

[Microsoft.Azure.WebJobs.Host.Listeners.FunctionListenerException函数[Name of function]的侦听器无法启动。

内部例外:

ArgumentNullException:值不能为空。参数名称:connectionString

这是Web作业的Program类内的代码。

static void Main()
{
    HostBuilder builder = new HostBuilder();

    builder.ConfigureWebJobs(b =>
    {
        b.AddAzureStorageCoreServices();
        b.AddTimers();
    });

    using (IHost host = builder.Build())
    {
        host.Run(); // <-- error happens on this line
    }
}

App.config内,我添加了以下两个连接字符串:

<add name="AzureWebJobsDashboard" connectionString="DefaultEndpointsProtocol=https;AccountName=[Name];AccountKey=[Key]" />
<add name="AzureWebJobsStorage" connectionString="DefaultEndpointsProtocol=https;AccountName=[Name];AccountKey=[Key]" />

使用[Name][Key]作为实时环境中的帐户名称。

此外,当我将连接字符串更改为UseDevelopmentStorage=true时,我也遇到了同样的异常。

我该如何解决?

c# azure-webjobs azure-webjobssdk
1个回答
0
投票

如果您使用的是Webjob SDK版本3.x,建议您创建一个。net核心控制台项目而不是。net框架控制台项目,然后按照此official doc

首先,创建一个.net core console app。并安装官方文档中提到的所有必要软件包。

您的program.cs:

static void Main()
{
    HostBuilder builder = new HostBuilder();

    builder.ConfigureWebJobs(b =>
    {
        b.AddAzureStorageCoreServices();
        b.AddAzureStorage();
        b.AddTimers();
    });

    using (IHost host = builder.Build())
    {
        host.Run();
    }
}

然后创建一个功能,请参阅this section

然后添加一个appsettings.json文件(Note:右键单击该文件->选择“属性”->,然后将“复制到输出目录”设置为“如果更新则复制”),在其中添加AzureWebJobsStorage它:

{
    "AzureWebJobsStorage": "{storage connection string}"
}

[如果您还有其他问题,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.