C# Azure IIS路由与Angular2-->;404

C# Azure IIS路由与Angular2-->;404,c#,rest,azure,iis,asp.net-web-api-routing,C#,Rest,Azure,Iis,Asp.net Web Api Routing,我们在Azure上有一个网站,使用C#编写的REST后端和Angular2编写的前端 当我单击网页中的菜单或按钮时,会打开正确的页面,url从/更改为例如/client/16 这很好,如果我理解正确,Angular2路由正在处理这个问题 但是,当我在这个页面上点击F5刷新浏览器时,我得到一个404错误:您正在查找的资源已被删除、名称已更改或暂时不可用。 同样,如果我理解正确,这是由IIS路由处理的 我已经阅读了几天关于这方面的帖子,并尝试了一些建议,主要是在Web.config中添加重写规则,但

我们在Azure上有一个网站,使用C#编写的REST后端和Angular2编写的前端

当我单击网页中的菜单或按钮时,会打开正确的页面,url从
/
更改为例如
/client/16
这很好,如果我理解正确,Angular2路由正在处理这个问题

但是,当我在这个页面上点击F5刷新浏览器时,我得到一个404错误:
您正在查找的资源已被删除、名称已更改或暂时不可用。
同样,如果我理解正确,这是由IIS路由处理的

我已经阅读了几天关于这方面的帖子,并尝试了一些建议,主要是在Web.config中添加重写规则,但到目前为止没有任何效果

在本地,我们没有这个问题,因为我们在VisualStudio中运行后端,在NPM中运行前端。这使得调试和解决变得非常困难


我应该怎么做才能解决这个问题?

在IIS论坛上,我被指了出来

将此规则添加到my Web.config解决了我的问题:

    <rule name="AngularJS Routes" stopProcessing="true">
      <match url=".*" />
      <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        <add input="{REQUEST_URI}" pattern="^/(api)" negate="true" />
      </conditions>
      <action type="Rewrite" url="/" />
    </rule>

我以为我以前试过这个,但显然不完全;)

你认为/client/16会按照你的Angular2路线处理吗?如果是这样,您如何调用RESTAPI?