我刚刚将webjob更新为azure-sdk的版本3。这份工作有一个TimerTrigger,并且可以选择使用连接字符串来创建appsettings.json文件,我希望使用TimerOptions类来设置ConnectionString,但令我惊讶的是该类为空?!。
我偶然发现了这个https://github.com/Azure/azure-webjobs-sdk/issues/2178
答案 0 :(得分:0)
我发现了有关TimerTrigger的上述情况的解决方法。在ConfigureHostConfiguration中,我们可以使用AddInMemoryCollection来设置connectionString“ AzureWebJobsStorage”。
Dictionary<string, string> connectionStrings =
new Dictionary<string, string>
{
{ "AzureWebJobsStorage", ConfigurationManager.ConnectionStrings["AzureWebJobsStorage"].ConnectionString},
};
builder.ConfigureHostConfiguration(config =>
{
config.AddInMemoryCollection(connectionStrings);
});
遗憾的是,这不适用于ServiceBusTriggers。但是有了ServiceBusTriggers,我们有一个ServiceBusOptions,它不为空,因此可以使用。
builder.ConfigureWebJobs(b =>
{
b.AddAzureStorageCoreServices();
b.AddServiceBus(options =>
{
options.MessageHandlerOptions.AutoComplete = false;
options.ConnectionString =
ConfigurationManager.ConnectionStrings["AzureWebJobsServiceBus"].ConnectionString;
});
b.AddTimers();
});