Консольное приложение Azure WebJob Пусто Аргументы при вызове из webhook
Я работаю над 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 by Post: [06/09/2018 15:19:37 > 33a9f2: INFO] PARAMS Passed :
и это консоль, когда я запускаю ее из командной строки: [06/09/2018 15:19:37 > 33a9f2: INFO] PARAMS Passed : 1,2,3
Может ли кто-нибудь помочь, пожалуйста. Та, Кс от всех.
1 ответ
Это сводится к ошибке публикации VS. Проблема в том, что он автоматически генерирует run.cmd
который имеет:
dotnet foo.dll
Когда это действительно должно иметь:
dotnet foo.dll %*
Чтобы аргументы передавались в ваше консольное приложение.
Я сообщу о проблеме, но сейчас вы можете обойти это следующим образом:
- Явно создать
run.cmd
в корне вашего консольного приложения (то есть рядом с program.cs). Сделайте, чтобы это содержало правильную строку выше с%*
, И, очевидно, используйте свое действительное имя dll вместо foo.dll:) - Добавьте его в свой проект и установите
Copy to Output Directory
вCopy Always
(по умолчанию это не копировать).
Это приведет к вашему run.cmd
чтобы развернуть, и VS не будет автоматически генерировать неисправный.