我使用WebJobes3.0和dotnet创建了一个网络作业。此webjob作业由服务总线触发器触发,目前在本地工作。但是,当我将webjob部署到azure (通过标准的zip流程,类型设置为连续的,缩放为多个实例)时,webjob会部署,然后运行失败,出现以下错误。
[07/03/2019 11:30:47 cdae3f: SYS INFO] Run script 'run.cmd' with script host - 'WindowsScriptHost'
[07/03/2019 11:30:47 cdae3f: SYS INFO] Status changed to Running
[07/03/2019 11:30:48 cdae3f: INFO]
[07/03/2019 11:30:48 cdae3f: INFO] D:\local\Temp\jobs\continuous\export-pdf\kucubmeb.3gj>dotnet exec Foo.ExportPdf.WebJob.dll
[07/03/2019 11:30:48 cdae3f: ERR ] Error:
[07/03/2019 11:30:48 cdae3f: ERR ] An assembly specified in the application ependencies manifest (Foo.ExportPdf.WebJob.deps.json) was not found:
[07/03/2019 11:30:48 cdae3f: ERR ] package: 'System.Text.Encoding.CodePages', version: '4.5.1'
[07/03/2019 11:30:48 cdae3f: ERR ] path: 'runtimes/win/lib/netcoreapp2.0/System.Text.Encoding.CodePages.dll'
[07/03/2019 11:30:48 cdae3f: ERR ]
[07/03/2019 11:30:48 cdae3f: SYS ERR ] Job failed due to exit code -2147450740
[07/03/2019 11:30:48 cdae3f: SYS INFO] Process went down, waiting for 60 seconds
[07/03/2019 11:30:48 cdae3f: SYS INFO] Status changed to PendingRestart现在看看上面的错误日志,它清楚地表明"System.Text.Encoding.CodePages.dll“缺失了,这就是导致这个问题的原因。因此,看到这一点,我为Encoding.CodePages安装了nuget包,现在可以在输出目录中看到.dll文件,但是它对错误消息没有任何影响。
我有一种感觉,要么是错误信息是一条红鲱鱼,要么是deps.json文件出现了一些我不明白的东西。
也很乐意提供任何代码示例,但由于这似乎是一个部署问题,所以不确定它是否相关。
发布于 2019-07-03 15:16:33
我设法做到了这一点,但可能不一定深入到根本原因,上述工作不起作用。
我遵循下面的文章,其中概述了如何通过网站和发布配置文件部署dotnet核心网络作业。以这种方式发布网络作业使其按预期的方式启动和运行。
https://dotnetcoretutorials.com/2018/10/12/azure-webjobs-in-net-core-part-3
如果该网站被关闭,这些是我必须遵循的基本步骤,使它发挥作用。
<Target Name="PostpublishScript" AfterTargets="Publish">
<Exec Command="dotnet publish ..\WebJobExamples.WebJobExample\ -o
$(PublishDir)App_Data\Jobs\continuous\WebJobExample" />
</Target>发布于 2019-07-08 05:58:20
对于一个.net核心网络工作,我以前也有过类似的问题。
这是我的解决方案:
在创建.net核心控制台项目并安装所有必要的nuget包之后,确保webjob能够在本地工作。
然后右键单击项目->,在“发布”弹出窗口中选择“发布->”,选择“文件夹”并选择路径(可以保留默认路径),然后单击“发布”按钮:

发布完成后,可以转到在上述步骤中定义的路径(默认情况下,路径如下所示: webjob_name\bin\Release\netcoreapp2.1\publish). )创建一个run.cmd文件,并将类似于dotnet your_webjob_name.dll的内容写入run.cmd ->,然后将这里的所有文件发送到.zip文件中。

最后一步是nav到azure门户,上传.zip文件/配置webjob等等。
https://stackoverflow.com/questions/56869574
复制相似问题