加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 为什么在发布Web App时我的WebJob没有被更改?

发布时间:2020-12-16 07:11:02 所属栏目:asp.Net 来源:网络整理
导读:我有一个部署到Azure的ASP.NET MVC Web App. VS 2013 Pro中的解决方案有3个项目: Web App项目 一个Webjob项目 一个Common项目,它存储App和Webjob共有的代码. Webjob项目通过Add – 添加到主App项目中.新的Azure Webjob项目上下文菜单,实际上在同一解决方案
我有一个部署到Azure的ASP.NET MVC Web App. VS 2013 Pro中的解决方案有3个项目:

> Web App项目
>一个Webjob项目
>一个Common项目,它存储App和Webjob共有的代码.

Webjob项目通过Add – >添加到主App项目中.新的Azure Webjob项目上下文菜单,实际上在同一解决方案中添加了一个新项目,这很好.

当我最初将应用程序发布到Azure时,Webjob也已部署,并且所有工作都按预期工作. Webjob每天运行一次.

现在我对Webjob进行了一些本地更改,并且需要发布这些更改.我按照相同的过程来部署应用程序(rtClick主应用程序 – >发布),该应用程序也应该获取对Webjob的更改,但预览窗格没有获取更改,然后更改随后未发布到Webjob .

顺便说一句,我对Common项目所做的任何更改都会成功获取,所以看起来有一些奇怪的做法是进行更改和发布Webjobs.

有没有人遇到过这个?

解决方法

我找到了问题的原因.它实际上非常简单,但也非常令人沮丧.

发布Web应用程序时,您可以选择删除目标位置的其他文件.我总是把这个检查过,因为我不喜欢无故留下旧文件.

您还可以选择从App_Data文件夹中排除文件,我也始终将其保留为已选中状态,以便根据上面的删除配置删除App_Data中的文件.然后我通常配置像NLog日志文件,ELMAH xml文件等的东西进入App_Data安全,知道那里的任何东西都不会被删除.

因此,Webjobs的问题在于它们被部署到App_Data中.因此,如果检查从App_Data文件夹中排除文件,那么当应用程序发布时,它正在执行它所说的并忽略App_Data,因此忽略对Webjob的更改.

因此,简单的解决方案是取消选中此选项,并成功部署Webjob.但是现在的问题是App_Data中的所有其他文件都将被删除(日志文件等).

因此,您可以取消选中删除文件配置,但这可能会留下其他不需要的文件.不理想.

另一个选项是选中删除配置,在发布之前单击“发布”对话框中的“预览”按钮,然后手动取消选中您不想删除的每个文件.但是,如果要保留的任何文件位于App_Data中的子文件夹内,则发布过程将失败,例如App_Data文件/日志.

因此,另一个选项是将要保留的App_Data中的所有文件移动到App_Data的根目录中,然后在发布之前取消选中预览窗口中的每个文件.一次完成并不是一件大事,但在发布很多次时变得单调乏味.

我意识到我可以将日志文件等移动到Azure存储,SQL数据库等,但如果是其他文件在App_Data中需要保存的话呢? App_Data不仅仅适用于Webjobs,但如果您还将App_Data用于其他内容,则使用Webjobs会产生一些尴尬的情况.

想知道我是否遗漏了这里明显的东西?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读