Azure web app在执行本地git部署时自动创建web.config,破坏应用程序(添加不必要的设置)

Azure web app在执行本地git部署时自动创建web.config,破坏应用程序(添加不必要的设置),git,azure,azure-web-app-service,Git,Azure,Azure Web App Service,我有一个简单的HTML/JS/CSS项目(不是节点)。我创建了一个全新的azure web应用程序,并将其部署选项设置为“local git”。然后,我按照有关的说明运行git remote add azure https://@localgitreprosite.scm.azurewebsites.net:443/localgitreprosite.git>。我推送到回购(git推送azure master) 问题是Azure(或者更具体地说,在执行git推送时运行的部署引擎)看到我的文件名为

我有一个简单的HTML/JS/CSS项目(不是节点)。我创建了一个全新的azure web应用程序,并将其部署选项设置为“local git”。然后,我按照有关的说明运行
git remote add azure https://@localgitreprosite.scm.azurewebsites.net:443/localgitreprosite.git
>。我推送到回购(
git推送azure master

问题是Azure(或者更具体地说,在执行git推送时运行的部署引擎)看到我的文件名为“app.js”,并假设它是节点部署。然后生成一个web.config。您可以在日志中看到它:

remote: Handling node.js deployment.
remote: KuduSync.NET from: 'D:\home\site\repository' to: 'D:\home\site\wwwroot'
remote: Deleting file: 'hostingstart.html'
remote: Copying file: '.gitignore'
<... remote: Copying file>
remote: Looking for app.js/server.js under site root.
remote: Using start-up script app.js
remote: Generated web.config.
remote: The package.json file does not specify node.js engine version constraints.
remote: The node.js application will run with the default node.js version 6.9.1.
remote: Selected npm version 3.10.8
<... etc>
remote:处理node.js部署。
远程:KuduSync.NET从:“D:\home\site\repository”到:“D:\home\site\wwwroot”
远程:删除文件:“hostingstart.html”
远程:正在复制文件:'.gitignore'
远程:在站点根目录下查找app.js/server.js。
远程:使用启动脚本app.js
远程:生成web.config。
远程:package.json文件未指定node.js引擎版本约束。
远程:node.js应用程序将使用默认的node.js版本6.9.1运行。
远程:选择的npm版本3.10.8
当它这样做时,站点返回一个500错误,因为
web.config
添加了一个
iisnode
处理程序和一堆其他不需要的东西,这与简单的html/js/css资源无关

我如何抑制这种
web配置
-创建行为(或者更广泛地说,这种自动猜测我在做什么项目的行为),并使部署按原样工作?我是否可以通过门户网站或.deployment文件进行配置,以告知Azure不要猜测

我的项目结构非常简单:

我意识到“app.js”是一种常见的节点模式,但它也是一种相当常见的单页应用模式。因此,虽然我确实可以将“app.js”的名称更改为其他名称,但我不希望有这种人为的限制


谢谢

您的500错误可能不是来自正在删除的web.config。App Services使用iisnode运行Node.js应用程序,因此web.config与节点应用程序的启动配置一起被删除,以便iisnode知道在根目录中运行App.js。看


该链接还有一个部分显示如何调试HTTP 500。

尝试设置此应用设置
SCM\u脚本\u生成器\u参数=--basic
。有关详细信息,请参阅

您可能需要手动删除已部署应用程序上的
web.config


Ot如果您想完全控制部署过程,可以使用a,它可以让您控制发生的一切。

如果我删除web.config,这些文件将作为常规html/js/css文件提供,并且一切正常。因此,我仍然觉得这是一个bug/不受欢迎的行为,我仍然想知道如何处理它。(请注意,如果文件位于子文件夹中而不是根目录下,它也可以工作。因此,问题在于根目录下的
web.config
)可以工作——尽管它具有不再执行
npm安装
的效果(可能很明显,但在我的情况下并不可取)。在我的理想世界中,我仍然希望安装
npm
,而不是开始节点配置。我(短暂地)尝试让
npm install
.deployment
文件中工作,但它似乎不容易工作(无论是单独工作还是作为powershell命令的一部分),我想我最终可能要做的是创建自己的web.config,这样我就不会得到自动创建的web.config。或者将我部署的文件移动到一个“公共”子文件夹——will Experience。我扩展了我的答案以涵盖这个案例。