我刚刚将网络作业更新到 azure-sdk 的第 3 版。该作业有一个 TimerTrigger 并且作为使用连接字符串创建 appsettings.json 文件的替代方法,我希望使用TimerOptions类来设置 ConnectionString 但令我惊讶的是该类是空的?!。
我偶然发现了这个https://github.com/Azure/azure-webjobs-sdk/issues/2178
我刚刚将网络作业更新到 azure-sdk 的第 3 版。该作业有一个 TimerTrigger 并且作为使用连接字符串创建 appsettings.json 文件的替代方法,我希望使用TimerOptions类来设置 ConnectionString 但令我惊讶的是该类是空的?!。
我偶然发现了这个https://github.com/Azure/azure-webjobs-sdk/issues/2178
我找到了关于 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();
});