iisnode.yml 在部署期间消失

iisnode.yml disappears during deployment

我正在使用 VSTS 的部署 Azure 应用服务任务将 node.js 应用部署到 Azure 应用服务 Web 应用,提供自定义 iisnode.ymlweb.configdeploy.cmd.

我的 VSTS 构建工件在资源管理器中看起来很好:

site
  config
  dist
  public
  .deployment
  deploy.cmd
  iisnode.yml
  package.json
  server.js
  web.config
  yarn.lock

任务已勾选:

Publish using Web Deploy
Remove additional files at destination 

任务的 Deploy Azure App Service.log 显示(它说更新而不是添加 iisnode.yml 因为我在此部署之前手动添加了一个)。

...
2017-05-07T05:51:51.4939189Z Info: Updating file (MyRepo\iisnode.yml).
2017-05-07T05:51:51.4939189Z Info: Updating file (MyRepo\package.json).
...

deploy.cmd 几乎只是使用 yarn 而不是 npm 从您可以使用 azure cli 生成的脚本中。

但是,在 Azure 调试控制台中,它没有列出 iisnode.yml:

PS D:\home\site\wwwroot> ls


    Directory: D:\home\site\wwwroot


Mode                LastWriteTime     Length Name                              
----                -------------     ------ ----                              
d----          5/5/2017   5:27 PM            config                            
d----          5/5/2017   5:27 PM            dist                              
d----          5/7/2017   7:07 AM            node_modules                      
d----          5/5/2017   5:27 PM            public                            
-a---          5/7/2017   6:43 AM         32 .deployment                       
-a---          5/7/2017   6:43 AM       3657 deploy.cmd                        
-a---          5/7/2017   6:43 AM       4509 package.json                      
-a---          5/7/2017   6:43 AM        148 server.js                         
-a---          5/7/2017   6:43 AM       2556 web.config                        
-a---          5/7/2017   6:43 AM     269807 yarn.lock                     

这会导致 运行 的节点进程没有所需的设置。什么是删除 iisnode.yml

我所做的工作是要么将所有设置放在 web.config 中,要么只放在行中:

<iisnode configOverrides="iisnodeoverride.yml"/>

它似乎从默认名称更改而来。