Странное поведение функций 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, который нарушает зависимости..