Azure WebJobs SDK и эмулятор - триггеры не работают - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь обновить Azure SDK с v1 до v3 и подключить его к эмулятору хранилища Azure для тестирования;используя консольное приложение и .NET Framework.

Похоже, что ни один из сработавших ранее триггеров не работает, «SomeFunction» в ошибке - это простой QueueTrigger с таймаутом.

Исключение :Microsoft.Azure.WebJobs.Host.Indexers.FunctionIndexingException: «Метод индексации ошибок» * .SomeFunction '

Внутреннее исключение : InvalidOperationException: учетная запись хранилища «Хранилище» не настроена.

[Timeout("00:30:00")]
public static async Task SomeFunction([QueueTrigger("queue")] CloudQueueMessage message, CancellationToken cancellationToken)
{
    // do stuff
}

app.config:

<connectionStrings>
  <add name="AzureWebJobsDashboard" connectionString="AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;DefaultEndpointsProtocol=http;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;" />
  <add name="AzureWebJobsStorage" connectionString="AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;DefaultEndpointsProtocol=http;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;" />
</connectionStrings>
<appSettings>
  <add key="StorageConnectionString" value="UseDevelopmentStorage=true" />
  <add key="AzureQueueName" value="queue" />
</appSettings>

1 Ответ

0 голосов
/ 25 ноября 2018

1.Используйте appSettings.json

Версия 3 Microsoft.Azure.WebJobs больше не настроена с файлом app.config, но с файлом appSettings.json.Поместите его в корень приложения и убедитесь, что для свойства " Copy to output directory " файла appSettings.json установлено значение Copy, если новее или Скопируйте всегда или добавьте его в файл .csproj напрямую, используя Всегда или PreserveNewest :

<Project ...> 
  ...
  <ItemGroup>
    <None Include="appSettings.json">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
  </ItemGroup>
  ...
</Project>

2.Содержимое appSettings.json

Ваш файл appSettings.json должен иметь строку подключения к хранилищу:

в разработке

{
  "ConnectionStrings": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true"
  }
}

в работе

{
  "ConnectionStrings": {
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=mystorage;AccountKey=key;..."
  }
}

См. этот пример хост-приложения .NET Core 2.1 для получения дополнительной информации о настройке в версии 3. Хотя он может несколько отличаться от используемого .NET Framework.

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