Ray*_*men 16 .net azure azure-webjobs .net-core
我正在尝试将.NET Core Console应用程序部署为Azure WebJob.所有文件等都被复制到正确的目录,但我的控制台应用程序的输出是.dll,所以它需要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
Run Code Online (Sandbox Code Playgroud)
使用Kudu或在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
Run Code Online (Sandbox Code Playgroud)
即使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,
Run Code Online (Sandbox Code Playgroud)
使用的来源:
Dav*_*bbo 20
问题是您run.cmd
使用带有BOM(字节顺序标记)的UTF-8 ,这在某些情况下会导致脚本引擎行为异常.修复是没有BOM.
wiki(https://github.com/projectkudu/kudu/wiki/Web-Jobs)上提到了这一点,但很容易让人错过.
归档时间: |
|
查看次数: |
1657 次 |
最近记录: |