【问题标题】:Deploy Angular 7 app made with visual studio 2017 template to IIS将使用 Visual Studio 2017 模板制作的 Angular 7 应用程序部署到 IIS
【发布时间】:2019-06-27 15:30:31
【问题描述】:

我是 .net 核心和 Angular 的新手。我制作了一个简单的应用程序,并正在寻找一个关于如何将其部署到 IIS 的体面指南。我正在使用 .net core 2.2 和 angular 7。

我能找到的大部分内容都是描述纯 Angular 应用程序的部署步骤。我尝试在解决方案上运行 dotnet publish,然后将 IIS 指向输出,但没有运气。我也试过把ClientApp\dist文件夹的内容移到wwwroot文件夹下,但没有什么积极作用。

我认为应该对 index.html 或 web.config 文件进行一些处理。

有谁知道在哪里可以找到工作分步指南,或者可以分享他们关于如何完成这项工作的经验?

提前致谢!

【问题讨论】:

  • 我在 IIS 上部署应用程序。你有什么错误吗?发生了什么事?
  • 嗨。当我执行 dotnet publish 并将 IIS 指向生成的输出时 - 网站没有启动。它也没有给出错误。我尝试按照下面的答案进行操作,但随后它开始给出我在评论中提到的错误。

标签: angular iis visual-studio-2017 .net-core-2.2


【解决方案1】:

我认为应该对 index.html 或 web.config 文件。

web.config 中设置 Angular 路由:

<?xml version="1.0" encoding="utf-8"?>
<configuration>

<system.webServer>
  <rewrite>
    <rules>
      <rule name="Angular Routes" stopProcessing="true">
        <match url=".*" />
        <conditions logicalGrouping="MatchAll">
          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        </conditions>
        <action type="Rewrite" url="./index.html" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

</configuration>

如果您将其部署在子文件夹中而不是根目录中。然后在index.html 中设置应用的基本href。

例如:

<base href="/myapp">

【讨论】:

  • 嗨。谢谢你的建议。我按照您的描述更改了配置文件。现在 iis 抛出一个错误,如“执行此操作时出错”,指向 web.config 文件。看起来需要 url 重写模块,但我已经安装了 dotne-hosting 包,所以它应该在那里......
【解决方案2】:

我想我随机解决了这个问题。

我尝试使用的不是 CLI dotnet publish,而是 VS2017 发布到文件夹功能(这在我的世界中应该基本相同,但我明天会检查文件并更新此评论,如果有一些差异)。

然后我将 IIS 指向目标文件夹,并在“安全”选项卡上添加了具有完全控制权限的用户 IUSR、NETWORK、NETWORK SERVICE 和 IIS_IUSRS。

而且...刚刚奏效了。

【讨论】:

  • 能够从命令行使其工作。所以看起来权限修复了它。
猜你喜欢
  • 2017-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-03
  • 2020-05-02
  • 2020-05-17
  • 1970-01-01
  • 2018-01-23
相关资源
最近更新 更多