首页 文章

.net Web API应用程序中的ARR / URL重写器

提问于
浏览
2

我有两个申请 . 其中之一是处理一系列产品的身份验证 . 因此,我想从每个网站重写一个URL到我们的“身份验证”项目 . 它看起来像这样 .

http://www.mywebsite.com/api/profile/login - > http://www.myauthentication.com/api/profile/login .

所以基本上推动请求跨域 .

为此,我在IIS中设置了ARR和URL重写 . 但是我似乎无法让它工作,我感觉URL重写没有运行通常会导致404的请求 . 我认为这是因为在REDIRECT请求(301重定向),配置工作完美 . 当我使用重写时,我得到一个通用的404页面 .

规则配置如下所示:

<rules>
    <rule name="Route the requests for the Profile API." enabled="true" stopProcessing="true">
      <match url="^profiles/(.*)" />
      <action type="Rewrite" url="http://authentication.local/api/profiles/{R:1}" logRewrittenUrl="true" />
    </rule>
</rules>

应该注意的是,我使用的是WebAPI,而不是MVC,我不确定这是否会导致问题 . 因为重定向有效而不是重写,我确信我已经在IIS中安装了所有内容 .

对于ARR,我只是勾选了“启用代理”,但我不确定是否需要做其他事情 .

1 回答

  • 1

    我设法通过为ARR添加忽略路由来解决这个问题 .

    RouteTable.Routes.IgnoreRoute("api/profiles/{*pathInfo}");
    

相关问题