首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一旦部署,Azure Web作业就无法运行

一旦部署,Azure Web作业就无法运行
EN

Stack Overflow用户
提问于 2019-07-03 11:54:37
回答 2查看 1.1K关注 0票数 0

我使用WebJobes3.0和dotnet创建了一个网络作业。此webjob作业由服务总线触发器触发,目前在本地工作。但是,当我将webjob部署到azure (通过标准的zip流程,类型设置为连续的,缩放为多个实例)时,webjob会部署,然后运行失败,出现以下错误。

代码语言:javascript
复制
[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文件出现了一些我不明白的东西。

也很乐意提供任何代码示例,但由于这似乎是一个部署问题,所以不确定它是否相关。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-03 15:16:33

我设法做到了这一点,但可能不一定深入到根本原因,上述工作不起作用。

我遵循下面的文章,其中概述了如何通过网站和发布配置文件部署dotnet核心网络作业。以这种方式发布网络作业使其按预期的方式启动和运行。

https://dotnetcoretutorials.com/2018/10/12/azure-webjobs-in-net-core-part-3

如果该网站被关闭,这些是我必须遵循的基本步骤,使它发挥作用。

  1. 将asp.net核心网站添加到解决方案中(空白模板)
  2. 将以下代码片段添加到新网站csproj文件中(将WebJobExample更改为new作业的名称和位置)
代码语言:javascript
复制
    <Target Name="PostpublishScript" AfterTargets="Publish">
      <Exec Command="dotnet publish ..\WebJobExamples.WebJobExample\ -o 
      $(PublishDir)App_Data\Jobs\continuous\WebJobExample"   />
    </Target>
  1. 从app服务下载发布配置文件并使用Web部署应用程序(FTP对我不起作用)
票数 0
EN

Stack Overflow用户

发布于 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等等。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56869574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档