You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用New-AzureWebsiteJob部署.NET Core Azure WebJob报错求助

解决New-AzureWebsiteJob部署.NET Core WebJob时的"No runnable script file"错误

我刚好碰到过类似的问题,给你捋捋怎么解决:

错误根源

New-AzureWebsiteJob这个命令默认会找直接可执行的文件(比如.exe、.ps1、.bat这类),但.NET Core 2.0的WebJob项目编译后只有.dll,没有传统的可执行文件,所以命令找不到能直接启动的入口,就报了这个错。

解决方案:添加启动脚本+正确打包部署

1. 创建启动脚本

在你的WebJob项目根目录下新建一个run.cmd文件,内容就是用dotnet命令来启动你的WebJob DLL:

dotnet YourWebJobAssemblyName.dll

把YourWebJobAssemblyName换成你实际的项目编译后的DLL名称(就是和项目同名的那个dll)。

如果偏好PowerShell脚本,也可以建run.ps1,内容是:

dotnet YourWebJobAssemblyName.dll

2. 打包WebJob文件

把以下所有文件打包成一个ZIP包:

  • 你的WebJob项目编译生成的所有.dll文件(包括依赖的NuGet包dll)
  • 生成的.deps.json、.runtimeconfig.json文件(这俩很重要,dotnet运行时需要它们)
  • 刚才创建的run.cmd(或run.ps1)

⚠️ 注意:ZIP包的根目录要直接包含这些文件,不能把它们放在子文件夹里,否则Azure找不到启动脚本。

3. 执行PowerShell命令部署

用New-AzureWebsiteJob命令时,通过-RunCommand参数指定你的启动脚本,示例如下:

# 连续运行的WebJob
New-AzureWebsiteJob -Name "YourAzureWebAppName" -JobName "YourTestSuiteWebJob" -JobType Continuous -ZipPath "C:\path\to\your\webjob.zip" -RunCommand "run.cmd"

# 触发式WebJob
New-AzureWebsiteJob -Name "YourAzureWebAppName" -JobName "YourTestSuiteWebJob" -JobType Triggered -ZipPath "C:\path\to\your\webjob.zip" -RunCommand "run.cmd"

替换YourAzureWebAppName和YourTestSuiteWebJob为你实际的Web应用名称和WebJob名称。

额外注意点

  • 确保你的Azure WebApp配置的.NET Core版本和项目的2.0版本匹配,可以在Azure门户的WebApp“配置”->“通用设置”里检查运行时版本。
  • 如果是连续运行的WebJob,要确保你的WebJob代码里有持续运行的逻辑(比如监听队列或者用Host.RunAsync()),否则会被Azure认为启动失败。

内容的提问来源于stack exchange,提问作者PhilG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:16:12