C# 如何使.NET重定向与部署到具有URL后缀的Azure API管理服务的API一起工作?

C# 如何使.NET重定向与部署到具有URL后缀的Azure API管理服务的API一起工作?,c#,.net,azure,http,redirect,C#,.net,Azure,Http,Redirect,我有几个由Azure API管理服务提供的API API管理服务有一个域,每个API在Azure门户中都有自己的“API URL后缀”设置,如下所示: API 1: API 2: API 3: 问题是,当这些API中的任何一个使用redirect或RedirectToAction方法执行重定向时,它在新URL中不包含“API URL后缀”,这会导致Azure返回404错误 e、 g 打电话给 https://www.example.com/first/api/v1/controller/ac

我有几个由Azure API管理服务提供的API

API管理服务有一个域,每个API在Azure门户中都有自己的“API URL后缀”设置,如下所示:

  • API 1:
  • API 2:
  • API 3:
问题是,当这些API中的任何一个使用
redirect
RedirectToAction
方法执行重定向时,它在新URL中不包含“API URL后缀”,这会导致Azure返回404错误

e、 g

打电话给

https://www.example.com/first/api/v1/controller/action
这应该转到

https://www.example.com/first/api/v1/controller/redirected
实际上重定向到

https://www.example.com/api/v1/controller/redirected
找不到

我不知道这是Azure问题、编码问题还是HTTP问题

重定向时,相对位置头是否只考虑域,而不考虑域后面的内容

我是否应该在
Redirect
RedirectToAction
调用中硬编码“API URL后缀”

我是否需要为我的开发环境设置某种代理,然后在测试时在实际路由之前添加后缀

我需要手动确保代码和Azure设置同步吗

或者是否有某种Azure设置可以解决这一问题,因此我重定向将实际使用“API URL后缀”


或者有其他的解决方法吗?是否需要使用请求URL进行一些丑陋的字符串操作?

您可以使用API管理中的策略:


<policies>
<inbound>
    <base />
    <rewrite-uri template="/v2/US/hardware/{storenumber}&{ordernumber}?City=city&State=state" />
</inbound>
<outbound>
    <base />
</outbound>