我试图部署.NET Core控制台应用程序作为Azure WebJob。所有文件等被复制到正确的目录,但我的控制台应用程序的输出是一个.dll,所以它需要dotnet.exe
开始。在Azure WebJob中缺少dotnet.exe
我已经用单个命令添加了一个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门户网站和呼叫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实际上是设在那里。
更新:
可能相关的是,源在脚本的开头使用@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,
来源用于:
如果您尝试从Kudu Console手动运行run.cmd,会发生什么情况? –
作为一个快速测试,我尝试用run.cmd创建一个连续的WebJob,它只有'dotnet.exe QbiSync.dll'(没有dll)。 'D:\ local \ Temp \ jobs \ continuous \ DotNetContJob \ tgq45gw1.kb2 \ QbiSync.dll',这意味着它成功启动了dotnet.exe并且只是因为dll失败而失败不在这里。你可以尝试这个相同的测试来隔离吗? –
@DavidEbbo使用'D:\ local \ Temp \ jobs \ continuous \ QbiSync \ jf0yv53s.i3c> run.cmd',使用kudu控制台成功启动并获得预期输出。我会在几分钟内检查你的第二条评论。 – Raymen