IWebJobsStartup с функциями Azure v2 - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь создать функцию Azure с V2 Runtime через Visual Studio и CLI.Но когда я запускаю его, я вижу следующую ошибку:

[30.09.2008 15:11:06 PM] Не найдено ни одной функции работы.Попробуйте сделать ваши классы и методы работы публичными.Если вы используете привязки расширений (например, ServiceBus, Timers и т. Д.), Убедитесь, что вы вызвали метод регистрации для расширения (ей) в своем коде запуска (например, config.UseServiceBus (), config.UseTimers () и т. Д..).

Ниже приведены время выполнения функции Azure и версия основного инструмента

Основные инструменты Azure (2.0.3) Функция Runtime Версия: 2.0.12115.0

Также я установил расширение служебной шины

enter image description here

Я также пытался установить расширение через CLI.Ниже приведен файл project.csproj:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
    <AzureFunctionsVersion>V2</AzureFunctionsVersion>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.Azure.WebJobs.Extensions.ServiceBus" Version="3.0.0" />
    <PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.0.1" />
    <PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.22" />
  </ItemGroup>
  <ItemGroup>
    <None Update="host.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <None Update="local.settings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      <CopyToPublishDirectory>Never</CopyToPublishDirectory>
    </None>
  </ItemGroup>
</Project>

Примечание. Это нестандартный шаблон, в который не было внесено никаких изменений.

1 Ответ

0 голосов
/ 01 октября 2018
<PackageReference Include="Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator" Version="1.0.1" />

Пожалуйста, удалите ссылку на этот пакет и очистите проект, он был импортирован в Microsoft.NET.Sdk.Functions для разработки VS.Повторный импорт может привести к ошибке здания, как вы видели.

Обновление

Поскольку вы не видите function.json во встроенных ресурсах, я боюсь, что-то естьнеправильно с Microsoft.NET.Sdk.Functions на вашей стороне, который не в состоянии построить атрибут триггера в файле .cs к function.json.Мое предложение

  1. Удалить функцию SDK %userprofile%\.nuget\packages\microsoft.net.sdk.functions.
  2. Удаление функции CLI с использованием VS %localappdata%\AzureFunctionsTools.
  3. Удаление механизма шаблонов, используемого VS %userprofile%\.templateengine.
  4. Перезапустите VS и создайте новый проект функции внизу.диалогового окна создания / шаблона см. Making sure all templates are up to date.Подождите, пока оно не изменится на Updates are ready.enter image description here enter image description here
  5. Нажмите Refresh.

На всякий случай, если вам нужно проверить, я использую СервисШаблон запуска очереди шины в VS.Код такой, как показано ниже, .csproj такой же, как и рассматриваемый, без Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.

    using Microsoft.Azure.WebJobs;
    using Microsoft.Azure.WebJobs.Host;
    using Microsoft.Extensions.Logging;

    namespace FunctionApp1
    {
        public static class Function1
        {
            [FunctionName("Function1")]
            public static void Run([ServiceBusTrigger("myqueue", Connection = "MyConnection")]string myQueueItem, ILogger log)
            {
                log.LogInformation($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
            }
        }
    }

и структуры папок в [Functionproject]\bin\Debug\netstandard2.0.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...