Странное поведение функций Azure DI для ILogger

У меня есть два идентичных проекта Azure Functions V2 на моем локальном компьютере. Оба проекта имеют одинаковые конфигурации, версии библиотеки nuget, SDK, код, startup.cs, версии CLI и Function Runtime. В основном они идентичны. Тем не менее, журналы, записанные в экземпляр ILogger в функции, отображаются в CLI, как и ожидалось, но другой отсутствует сообщение в CLI!

Functions.csproj для обоих проектов;

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
    <AzureFunctionsVersion>v2</AzureFunctionsVersion>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.Functions.Extensions" Version="1.0.0" />
    <PackageReference Include="Microsoft.Azure.ServiceBus" Version="3.4.0" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="3.0.6" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.29" />
  </ItemGroup>

  <ItemGroup>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
</Project>

Startup.cs;

[assembly: FunctionsStartup(typeof(FunctionAppLogTest.Startup))]
namespace FunctionAppLogTest
{
    public class Startup : IWebJobsStartup
    {
        public void Configure(IWebJobsBuilder builder)
        {
            ConfigureServices(builder.Services).BuildServiceProvider(true);
        }

        private IServiceCollection ConfigureServices(IServiceCollection services)
        {
            return services;
        }
    }
}

Function.cs;

    public class Function1
    {
        private readonly ILogger<Function1> _logger;

        public Function1(ILogger<Function1> logger)
        {
            _logger = logger;
        }

        [FunctionName("Function1")]
        public async Task Run([ServiceBusTrigger("topic-name", "sb-name", Connection = "AzureServiceBus")]string message)
        {
            _logger.LogInformation($" HELLO! : {message}");
        }
    }

CLI и конфигурации проекта;

"ПРИВЕТ!"записывается в CLI, как вы видите в журналах внизу!!

Но в другом проекте отсутствует журнал HELLO, как вы видите ниже;

Я просто карри об ошибке, которая создает условия гонки для DI, который нарушает зависимости..

0 ответов