没有部署到Azure的webjob的网站。
我在使用Visual Studio Online通过持续部署获取具有关联webjob控制台应用程序的网站时遇到问题。我正在使用VS2013和更新4以及最新的Azure SDK。
该网站和相关的webjob将使用Visual Studio的直接发布发布到Azure并且运行良好,因此我相信发布设置很好。
该解决方案将在本地构建并正常运行。
该解决方案一旦签入,将构建并(看似)在VSO中部署(使用CI),Azure注意到构建成功并将其显示为“活动部署”。
但是,网站和相关的webjob将不会更新
当我在VSO构建并在Azure上部署后浏览已部署的文件时,所有发生的事情都是将控制台应用程序的二进制文件复制到网站的bin /文件夹中。
没有任何网站文件正在更新。这几乎就像部署错误的项目一样!
如果我删除Webjob并只是部署网站,它将通过VSO构建和部署 - 网站将更新。
它正在添加通过VSO导致部署问题的webjob 我相信所有步骤都是正确的,将webjob添加到WebApp,将正确的webjobs-list.json添加到webapp并将webjob-publish-settings.json添加到Console应用程序 - 正如我所说,发布网站(带有webjob)直接到Azure工作完美,网站和webjob都得到更新。
我在帖子后搜索并尝试各种各样的事情,但没有一个有效
鉴于这个直接来自VS的发布,以及构建正在完成,这表明VSO Build Defintion出现了问题。
我的第一个猜测是将其从构建解决方案改为仅建立Web项目,但这似乎不起作用
我还尝试了每个输出位置设置(包括解决方案构建和Web项目构建) - 唯一有效且构建完成的解决方案(.sln)使用' SingleFolder'集。
我已经和我斗争了几天,现在我有点难过了!
答案 0 :(得分:0)
如果您使用Visual Studio解决方案通过VSO以自动构建部署静态网站,也会发生这种情况 - 除非更改包含网站的Visual Studio项目/解决方案,否则将不会重新部署实际网站内容。
答案 1 :(得分:0)
我认为你预测它正在部署错误的项目是正确的。如果您的解决方案中有多个“可部署”项目(并且控制台应用程序被认为是可部署的,因为这是您可以托管/部署webjob的一种方式),您需要告诉Kudu要部署哪一个。
您可以控制它在webapp的“配置”选项卡的“应用设置”下添加新设置
您想要的设置是Project
,它是从解决方案根目录到您的Web项目的.csproj文件的相对路径。
或者,您可以在自定义.deployment文件中指定设置。
Relevant Kudu documentation here
来自文档:
您可以指定项目文件的完整路径。请注意,这不是解决方案文件(.sln)的路径,而是项目文件(.csproj / .vbproj)的路径。原因是Kudu只为这个项目构建了最小依赖树,并避免在解决方案中构建Web项目不需要的不相关项目。
以下是一个例子:
[配置] project = WebProject / WebProject.csproj
答案 2 :(得分:0)
我还尝试了每个输出位置设置(包括解决方案构建和Web项目构建) - 唯一有效且构建完成的是使用'SingleFolder'设置的解决方案(.sln)构建
这是问题的根本案例。 您不能使用SingleFolder,因为它设置了与Web作业打包混乱的OutDir。
我必须在每个Web应用程序项目中引入一个wpp.targets文件,以便将发布包创建到特定路径(使用PackageLocation)
因此,让每个项目都有,并将设置设置为AsConfigured(或Per Project)而不是SingleFolder。
请参阅this