无法将Angular 8 CLI应用程序部署为Azure应用程序服务

时间:2019-08-26 19:21:21

标签: angular asp.net-core azure-web-sites

我正在使用Angular 8和Asp.Net Core 2.1。我首先使用Visual Studio模板创建了Asp.Net Core应用程序。然后,我在repo文件夹中打开一个命令提示符,并使用ng create MyClientApp创建了我的Angular应用程序。我现在正在使用Visual Studio Code来管理应用程序的Angular部分。如果我在本地运行该应用程序,则一切正常。我正在尝试将Angular应用程序部署到运行.NET v4.7框架的Azure应用程序服务。

客户端在localhost:4200上运行

api在localhost:5849 / api上运行

我现在正尝试将Angular应用程序部署为Azure应用程序服务,但无法正常工作。

有人知道使用Visual Studio Code部署应用程序的简便方法吗?理想情况下,我想使用Azure App Service扩展。

node = v10.14.0

NPM = 6.4.1

我注意到,如果我运行ng build,它将建立完整的dist文件夹。如果我运行ng build --prod,它将不会构建完整的dist文件夹。我看到这样的40多个错误。

src / app / content / content.component.html(157,25)中的错误::属性“ userService”是私有的,只能在“ ContentComponent”类中访问。

src / app / content / content.component.html(91,122)::属性'filter'在'ContentComponent'类型上不存在。

我还注意到,根据Azure控制台,我的App Service为节点运行v0.10.40,为npm运行1.4.28。我添加了此WEBSITE_NODE_DEFAULT_VERSION 10.14.0,但这没用。

我希望这样的事情能奏效。这适用于ng build,但不适用于我。 https://dzone.com/articles/deploy-an-angular-app-from-visual-studio-code-to-a-1

更新1: 看起来不支持节点v10.14.0。我现在在Angular应用中运行v10.14.1,控制台反映了这一点,但仍然无法正常工作。我正在尝试查看是否提供任何错误。

非常感谢您的帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

我终于做到了。关键是确保在部署应用程序时选择dist文件夹内的文件夹(dist \ myclientapp)。然后,我必须使用FTP将以下web.config添加到wwwroot文件夹。最后一步是重新启动应用程序。

<configuration>
<system.webServer>

<!-- indicates that the index.js file is a node.js application 
to be handled by the iisnode module -->

<handlers>
  <add name="iisnode" path="index.js" verb="*" modules="iisnode" />
</handlers>

<!-- adds index.js to the default document list to allow 
URLs that only specify the application root location, 
e.g. http://mysite.azurewebsites.com/ -->

<defaultDocument enabled="true">
  <files>
    <add value="index.js" />
  </files>
</defaultDocument>

</system.webServer>
</configuration>