Функции Azure, основанные на таймере, жалуются на тип журнала - PullRequest
0 голосов
/ 18 мая 2018

У меня точно такая же проблема, как и этот вопрос

Но ни один из ответов не работает, долго гуглил и мои версии обновляются и т. Д., И все же я получаю то же самоеошибка

Код является примером шаблона

using System;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;

namespace NWMPosNGPimFeeder
{
    public static class Function1
    {
        [FunctionName("Function1")]
        public static void Run([TimerTrigger("0 */1 * * * *")]TimerInfo myTimer, TraceWriter log)
        {
            log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
        }
    }
}

Ниже приведены версии хоста и т. д., включая фактическую ошибку

[21/5/2018 2:03:29 AM] Host has been specialized
Listening on http://localhost:7071/
Hit CTRL-C to exit...
[21/5/2018 2:03:29 AM] Reading host configuration file 'C:\Users\MattDouhan\source\repos\NWMPosNGPimFeeder\NWMPosNGPimFeeder\bin\Debug\net461\host.json'
[21/5/2018 2:03:29 AM] Host configuration file read:
[21/5/2018 2:03:29 AM] {
[21/5/2018 2:03:29 AM] }
[21/5/2018 2:03:30 AM] Loaded custom extension 'BotFrameworkConfiguration'
[21/5/2018 2:03:30 AM] Loaded custom extension 'SendGridConfiguration'
[21/5/2018 2:03:30 AM] Loaded custom extension 'EventGridExtensionConfig'
[21/5/2018 2:03:31 AM] Generating 1 job function(s)
[21/5/2018 2:03:31 AM] Starting Host (HostId=desktop7cks1do-1972353084, Version=1.0.11232.0, ProcessId=2668, Debug=False, Attempt=0)
[21/5/2018 2:03:31 AM] A ScriptHost error has occurred
[21/5/2018 2:03:31 AM] Microsoft.Azure.WebJobs.Host: Error indexing method 'Function1.Run'. Microsoft.Azure.WebJobs.Host: Cannot bind parameter 'log' to type TraceWriter. Make sure the parameter Type is supported by the binding. If you're using binding extensions (e.g. ServiceBus, Timers, etc.) make sure you've called the registration method for the extension(s) in your startup code (e.g. config.UseServiceBus(), config.UseTimers(), etc.).
[21/5/2018 2:03:31 AM] Error indexing method 'Function1.Run'

1 Ответ

0 голосов
/ 21 мая 2018

Проблема находит в старой функции, которую использует VS VS.

Версия = 1.0.11232.0

Это означает, что версия cli равна 1.0.4.Эта старая версия действительно вызывает вашу проблему, но она уже была исправлена ​​в новых.

Проверьте вашу Azure Functions and Web Jobs Tools версию.

Последнее расширение 15.0.40502.0, заставит VS использовать cli 1.0.4если VS не сможет загрузить новую версию cli.Этот процесс загрузки находится в фоновом режиме и, кажется, нет явного предупреждения.См. Эта проблема GitHub .

Решение

Я рекомендую вам удалить папку C:\Users\UserName\AppData\Local\AzureFunctionsTools и перезапустить VS, чтобы загрузить ее снова.

Когда мы создаем приложение-функцию, в диалоговом окне можно увидеть подсказку, что Making sure all templates are up to date...

enter image description here

Подождите немного, мы можемсм. подсказку, изменяющуюся как

enter image description here

Если она не изменится через 3 м (время для загрузки 200M файлов на вашей стороне), проверьте папку C:\Users\UserName\AppData\Local\AzureFunctionsTools\Releases\1.0.12.1чтобы увидеть, пусто ли оно.Если он пуст, это означает, что загрузка не может быть выполнена через VS.Мы должны сделать это вручную.

Вы можете найти ссылку на скачивание cli, itemTemplates и projectTemplates в C:\Users\UserName\AppData\Local\AzureFunctionsTools\feed.json.

Вы можете обратиться к папке 1.0.10 для создания аналогичной структуры папок.

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