Консольное приложение Azure WebJob Пустые Аргументы при вызове из webhook - PullRequest
0 голосов
/ 09 июня 2018

Я работаю над Azure WebJob.Я начал с создания консольного приложения в Visual Studio и опубликовал его как webJob в portal.azure из VisualStudio.

WebJob запускается вручную из Webhook с username и password https://{MyWebAPP}.scm.azurewebsites.net/api/triggeredwebjobs/{MyWebJob}/run?arguments=1 2 3из второй программы.

этот WebJob очень прост.Он отображает только аргументы 1,2 и 3.

, когда я запускаю программу из CommandeLine, как, например, dotnet MyProject.dll 1 2 3, он работает хорошо.но когда я запускаю его из webHook, он не читает аргументы.

Вот мой основной скрипт:

 class Program
{
    static void Main(string[] args)
    {

        Console.WriteLine("PARAMS Passed : " + string.Join(",", args));
    }
}

Это журнал в WebJob, когда я запускаю из WebHook по запросу Post:[06/09/2018 15:19:37 > 33a9f2: INFO] PARAMS Passed :

и это консоль, когда я запускаю ее от коммандной строки: [06/09/2018 15:19:37 > 33a9f2: INFO] PARAMS Passed : 1,2,3

Может какая-нибудь справка ПОЖАЛУЙСТА.Tha, ks от всех.

1 Ответ

0 голосов
/ 09 июня 2018

Это сводится к ошибке публикации VS.Проблема в том, что он автоматически генерирует run.cmd, который имеет:

dotnet foo.dll

Когда он действительно должен иметь:

dotnet foo.dll %*

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

Я сообщу о проблеме, но сейчас вы можете обойти это следующим образом:

  • Явно создайте run.cmd в корне вашего консольного приложения (то есть рядом с программой)..cs).Сделайте так, чтобы оно содержало правильную строку выше с %*.И, очевидно, используйте свое действительное имя dll вместо foo.dll:)
  • Добавьте его в свой проект и установите Copy to Output Directory на Copy Always (по умолчанию не копировать).

Это приведет к развертыванию вашего run.cmd, и VS не будет автоматически генерировать неисправный.

...