0

我刚刚将网络作业更新到 azure-sdk 的第 3 版。该作业有一个 TimerTrigger 并且作为使用连接字符串创建 appsettings.json 文件的替代方法,我希望使用TimerOptions类来设置 ConnectionString 但令我惊讶的是该类是空的?!。

我偶然发现了这个https://github.com/Azure/azure-webjobs-sdk/issues/2178

4

1 回答 1

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();
});
于 2019-08-29T08:57:11.163 回答