Iis VS2017/Angular 7升级部署错误(开发模式)

Iis VS2017/Angular 7升级部署错误(开发模式),iis,visual-studio-2017,angular7,Iis,Visual Studio 2017,Angular7,几年前,我在AngularJs中做了一些开发,非常喜欢它,所以我决定开始尝试迁移到一个更新的版本。考虑到Angular 7已经过时,我认为转移到Angular 6是没有意义的,但是VisualStudio模板目前仍在使用V6 我一直遵循本文()将默认VS模板升级到V7,但在将应用程序部署到web托管提供商时遇到了问题。如果我使用该模板创建一个新的Angular V6应用程序,它将部署并运行良好。我可以使用上面提到的文章将V6模板应用程序升级到V7,它在VS本地运行良好,但在部署时会抛出以下错误:

几年前,我在AngularJs中做了一些开发,非常喜欢它,所以我决定开始尝试迁移到一个更新的版本。考虑到Angular 7已经过时,我认为转移到Angular 6是没有意义的,但是VisualStudio模板目前仍在使用V6

我一直遵循本文()将默认VS模板升级到V7,但在将应用程序部署到web托管提供商时遇到了问题。如果我使用该模板创建一个新的Angular V6应用程序,它将部署并运行良好。我可以使用上面提到的文章将V6模板应用程序升级到V7,它在VS本地运行良好,但在部署时会抛出以下错误:

错误:
不应为已部署的应用程序启用开发环境。它可能导致向最终用户显示异常的敏感信息。对于本地调试,通过将ASPNETCORE_环境变量设置为Development并重新启动应用程序来启用开发环境

我尝试过的:

1)我尝试更改项目属性对话框中调试选项卡上的ASPNETCORE_环境变量(从“开发”更改为“生产”)。我也犯了同样的错误

2)我尝试将environment.ts文件的production属性更改为true,以便environment.ts和environment.prod.ts都为true,从而排除使用错误版本的可能性。这也会导致相同的错误。

3)我尝试使用WinDiff显示“ClientApp”文件夹之间的所有文件差异,比较V6和V7。因为这是我唯一改变的东西,无论它何时起作用,何时不起作用。唯一让我怀疑的区别是:main.ts、angular.json和app.module.ts。我已经包括了每个差异的图片(红色是V6,黄色是V7)。我不知道在这一点上还要尝试什么,但是我注意到从V6到V7的路径结构不一样,并且显示在angular.json图像中。我不确定这是否是问题所在,但同样,该应用程序在V7上在VS本地运行良好,因此我怀疑这是否是原因,但不确定是否真的如此

  • 梅因酒店

  • angular.json

  • app.module.ts


任何帮助都将不胜感激。

我终于让它工作了,但我不能完全理解为什么

V7升级(使用“ng new ClientApp”命令)将创建输出路径为“dist/ClientApp”的angular.json文件,其中原始V6模板仅使用“dist”创建此属性。如果我在V7应用程序中将outputPath更改为“dist”,它将按预期部署和运行。因此,它肯定与angular.json中的这个设置有关


还有一件事对我来说仍然毫无意义。如果我完全删除发布到站点的整个web目录,将outputPath更改回“dist/ClientApp”,然后重新部署,它仍然可以正常工作。我这样做是为了验证这个改变确实解决了我在发布答案之前遇到的问题。我没想到这会起作用,所以肯定会让人搞不清楚它为什么会起作用。

阅读讨论,了解更多关于
web.config
中发生的事情。感谢您的回复……不幸的是,就我所知,该链接并没有真正帮助我的情况。V6项目也没有web.config文件,而且运行得非常好,所以我不认为这是问题所在。只有在删除ClientApp文件夹并从angular cli重新创建后,它才会停止工作。我继续尝试了从本文中看到的两种选择,看看它是否解决了我的问题,但都没有。我向项目中添加了一个默认的web.config文件,并像Chris指出的那样添加了EnvironmentName属性。这两项更改都没有解决该问题。出于测试目的…我部署了一个全新的V6应用程序,其中包含一个空的web.config和发布xml中的EnvironmentName属性。应用程序运行良好。我部署了一个新的升级V7应用程序,其中包含两个更改。这是失败的。我下载了两个web.config文件,它们是相同的。谢谢用户1011627!你帮我节省了很多时间!令人惊叹的!很高兴它有帮助!