lee*_*len 6 asp.net asp.net-mvc azure azure-web-sites azure-webjobs
我有一个部署到Azure的ASP.NET MVC Web App.VS 2013 Pro中的解决方案有3个项目:
Webjob项目通过Add --> New Azure Webjob Project上下文菜单添加到主App项目中,实际上在同一个解决方案中添加了一个新项目,这很好.
当我最初将应用程序发布到Azure时,Webjob也已部署,并且所有工作都按预期工作.Webjob每天运行一次.
现在我对Webjob进行了一些本地更改,并且需要发布这些更改.我按照相同的过程来部署App(rtClick main App --> Publish),它也应该对Webjob进行更改,但是预览窗格没有获取更改,然后更改随后不会发布到Webjob.
顺便说一句,我对Common项目所做的任何更改都会成功获取,所以看起来有一些奇怪的做法是进行更改和发布Webjobs.
有没有人遇到过这个?
我找到了问题的原因.它实际上非常简单,但也非常令人沮丧.
发布Web应用程序时,您可以选择Remove additional files at destination.我总是把这个检查过,因为我不喜欢无故留下旧文件.
您还可以选择Exclude files from the App_Data folder我也始终选中,以便App_Data根据上面的删除配置删除文件.然后,我通常配置NLog日志文件,ELMAH xml文件等内容,以App_Data确保其中的任何内容都不会被删除.
所以Webjobs的问题在于它们被部署到了App_Data.因此,如果Exclude files from App_Data folder检查了应用程序发布时,它正在执行它所说的并忽略它App_Data,因此忽略了对Webjob的更改.
因此,简单的解决方案是取消选中此选项,并成功部署Webjob.但是现在的问题是所有其他文件都App_Data将被删除(日志文件等).
因此,您可以取消选中删除文件配置,但这可能会留下其他不需要的文件.不理想.
另一个选项是选中删除配置,在发布之前单击"发布"对话框中的"预览"按钮,然后手动取消选中您不想删除的每个文件.但是,如果要保留的任何文件位于App_Data例如子文件夹中,则发布过程将失败App_Data/logs.
因此,另一个选项是将App_Data要保留的所有文件移动到其根目录中App_Data,然后在发布之前在"预览"窗口中取消选中它们中的每个文件.一次完成并不是一件大事,但在发布很多次时变得单调乏味.
我意识到我可以将日志文件等移动到Azure存储,SQL数据库等,但如果是其他文件App_Data需要保存的话呢?App_Data不仅仅适用于Webjobs,但如果您还使用App_Data其他东西,使用Webjobs会产生一些尴尬的局面.
想知道我是否遗漏了这里明显的东西?
| 归档时间: |
|
| 查看次数: |
1318 次 |
| 最近记录: |