Этот дескриптор службы имеет ключ. Ваш поставщик услуг может не поддерживать ключевые услуги

У меня есть приложение .Net 8 с изолированными функциями, в которое я добавил Application Insights. Вот мой код сборки хоста.

    var host = new HostBuilder()
        .ConfigureFunctionsWebApplication()
        .ConfigureServices((context, services) =>
        {
            services.AddApplicationInsightsTelemetryWorkerService();
            services.ConfigureFunctionsApplicationInsights();
        })
        .Build();

Когда строка services.AddApplicationInsightsTelemetryWorkerService(); выполняется, я получаю следующее исключение...

System.InvalidOperationException
  HResult=0x80131509
  Message=This service descriptor is keyed. Your service provider may not support keyed services.
  Source=Microsoft.Extensions.DependencyInjection.Abstractions
  StackTrace:
   at Microsoft.Extensions.DependencyInjection.ServiceDescriptor.ThrowKeyedDescriptor() in Microsoft.Extensions.DependencyInjection\ServiceDescriptor.cs:line 483

Может ли кто-нибудь сказать мне, как я могу это исправить?

Вы получаете ошибку локально?

Harshitha 08.04.2024 06:01

Можете ли вы поделиться своим .csproj файлом?

Harshitha 08.04.2024 08:51
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
2
707
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Application Insights по умолчанию настраивается локально для изолированной функции .NET 8.

  • Для работы с Application Insights в развернутом приложении-функции необходимо удалить локальную версию и установить Azure Application Insights.

Я могу без проблем запустить функцию с кодом по умолчанию и записать трассировку в Application Insights.

Мой .csproj файл:

<Project Sdk = "Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <AzureFunctionsVersion>v4</AzureFunctionsVersion>
    <OutputType>Exe</OutputType>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <ApplicationInsightsResourceId>/subscriptions/******/resourceGroups/******/providers/microsoft.insights/components/FunctionApp1</ApplicationInsightsResourceId>
    <UserSecretsId>******</UserSecretsId>
  </PropertyGroup>
  <ItemGroup>
    <FrameworkReference Include = "Microsoft.AspNetCore.App" />
    <PackageReference Include = "Microsoft.Azure.Functions.Worker" Version = "1.20.1" />
    <PackageReference Include = "Microsoft.Azure.Functions.Worker.Extensions.Http" Version = "3.1.0" />
    <PackageReference Include = "Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore" Version = "1.2.0" />
    <PackageReference Include = "Microsoft.Azure.Functions.Worker.Sdk" Version = "1.16.4" />
    <PackageReference Include = "Microsoft.ApplicationInsights.WorkerService" Version = "2.21.0" />
    <PackageReference Include = "Microsoft.Azure.Functions.Worker.ApplicationInsights" Version = "1.1.0" />
    <PackageReference Include = "Microsoft.Extensions.Configuration.UserSecrets" Version = "8.0.0" />
  </ItemGroup>
  <ItemGroup>
    <None Update = "host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update = "local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
  <ItemGroup>
    <Using Include = "System.Threading.ExecutionContext" Alias = "ExecutionContext" />
  </ItemGroup>
</Project>

Мой Program.cs файл:

var host = new HostBuilder()
    .ConfigureFunctionsWebApplication()
    .ConfigureServices(services =>
    {
        services.AddApplicationInsightsTelemetryWorkerService();
        services.ConfigureFunctionsApplicationInsights();
    })
    .Build();

Локальный выход:

Поиск транзакции:

Другие вопросы по теме

Приложение изолированной функции Azure (.net 8) не запускается
Когда я развертываю репозиторий приложения-функции в новом приложении, оно не распознает никакие функции Azure/Python/FunctionApp
Вставка данных в Azure SQL с помощью функций Azure V2 Python (управляемое удостоверение)
Азурите: огромные проблемы с использованием локальных инструментов разработки при использовании функций Azure
Функция триггера Azure Blob работает с задержками и локально перегружена
Подключение к базе данных postgres из функции Azure — сбой при локальной сборке/действиях GH, успешный результат при удаленной сборке cli
.NET 8 ИЗОЛИРОВАННАЯ функция Azure — атрибуты привязки не работают
Почему моя пользовательская политика AD B2C возвращает инвалид_грант после добавления шага оркестрации, вызывающего функцию Azure?
Поддержка функций Azure GDAL
Как обновить номер SKU и лимит сообщений IOThub из приложения-функции Azure (изолировано)