在不同的服务器中部署angular 6应用程序和asp.net Web API

时间:2019-03-11 15:56:58

标签: angular iis asp.net-web-api deployment

我在 IIS服务器中部署了角度应用程序(fornt-end-app),并部署了 asp.net Web API应用程序(后端-app)在另一台服务器中(对于角度应用程序和asp.net Web api应用程序,请使用其他服务器)。

当我进入角度应用程序URL 时,我可以访问我的网页。当我单击菜单项时,有角路由器会将我路由到请求的URL,但是在输入在浏览器中请求的URL 时,出现找不到IIS 404 错误。

对此问题一无所知。

2 个答案:

答案 0 :(得分:2)

发生这种情况是因为IIS对客户端路由一无所知,因此,您必须编写一条重写规则,该规则规定始终将流量定向到未知URL到Angular应用程序的索引文件。完成此操作后,Angular将负责提供正确的路线。

答案 1 :(得分:1)

IIS正在尝试路由您的请求。将IIS设置为重定向到root。 IIS重定向到root之后,Angular Routing将选择其余路由。

这是我的Web.config中的内容。

<rule name="Force Index.html" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions>
        <add input="{REQUEST_URI}" matchType="IsDirectory" negate="true" />
        <add input="{REQUEST_URI}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    </conditions>
    <action type="Rewrite" url="/" />
</rule>