我正在开发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
时,我也遇到了同样的异常。
我该如何解决?
如果您使用的是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}"
}
[如果您还有其他问题,请告诉我。