Я пытаюсь развернуть приложение .NET Core Console в качестве Azure WebJob. Все файлы и т. Д. Копируются в нужные каталоги, но мое консольное приложение - это .dll, поэтому для начала требуется dotnet.exe
.Отсутствует dotnet.exe в Azure WebJob
Я добавил файл run.cmd с единственной командой: dotnet QbiSync.dll
. Но выход состоит в следующем, не могу найти dotnet.exe:
[11/14/2016 13:15:29 > 4741da: SYS INFO] Run script 'run.cmd' with script host - 'WindowsScriptHost'
[11/14/2016 13:15:29 > 4741da: SYS INFO] Status changed to Running
[11/14/2016 13:15:29 > 4741da: INFO]
[11/14/2016 13:15:29 > 4741da: INFO] D:\local\Temp\jobs\continuous\QbiSync\x4jkoxww.vy4>dotnet QbiSync.dll
[11/14/2016 13:15:29 > 4741da: ERR ] 'dotnet' is not recognized as an internal or external command,
[11/14/2016 13:15:29 > 4741da: ERR ] operable program or batch file.
[11/14/2016 13:15:29 > 4741da: SYS ERR ] Job failed due to exit code 1
[11/14/2016 13:15:29 > 4741da: SYS INFO] Process went down, waiting for 60 seconds
Открытие окна консоли с помощью Куду или в Azure Portal и призывающую dotnet.exe
и работает отлично. Я также попытался как жесткие ссылки:
"D:\Program Files (x86)\dotnet\dotnet.exe" QbiSync.dll
"\Program Files (x86)\dotnet\dotnet.exe" QbiSync.dll
Но они также дают ошибки, как:
[11/14/2016 13:59:29 > 4741da: ERR ] The filename, directory name, or volume label syntax is incorrect.
[11/14/2016 13:59:29 > 4741da: INFO] D:\local\Temp\jobs\continuous\QbiSync\hzlkzj1q.0jt>"D:\Program Files (x86)\dotnet\dotnet.exe" QbiSync.dll
Несмотря на то, dotnet.exe фактически находится там.
Update:
Возможно, связанной в том, что источник, используемый @echo off
в начале сценария. Но это также «команда», которая, похоже, не принимается.
[11/14/2016 12:37:57 > 4741da: INFO] D:\local\Temp\jobs\continuous\QbiSync\3n44nly1.ucq>@echo off
[11/14/2016 12:37:57 > 4741da: INFO]
[11/14/2016 12:37:57 > 4741da: ERR ] '@echo' is not recognized as an internal or external command,
Использованные источники:
Что произойдет, если вы попытаетесь запустить run.cmd вручную с консоли Kudu? –
В качестве быстрого теста я попытался создать непрерывный WebJob с run.cmd, который просто имеет 'dotnet.exe QbiSync.dll' (без наличия dll). Это не удалось: «Приложение для выполнения не существует:« D: \ local \ Temp \ jobs \ непрерывный \ DotNetContJob \ tgq45gw1.kb2 \ QbiSync.dll'', что означает, что он успешно запустил dotnet.exe и только провалился, потому что dll не там. Можете ли вы попробовать этот же тест, чтобы изолировать? –
@DavidEbbo Он успешно запускается и имеет ожидаемый вывод с помощью консоли kudu с 'D: \ local \ Temp \ jobs \ continu \ QbiSync \ jf0yv53s.i3c> run.cmd'. Через несколько минут я проверю ваш второй комментарий. – Raymen