【问题标题】:Web API - OWIN TokenEndPointPath not found 404 on IISWeb API - 在 IIS 上找不到 OWIN TokenEndPointPath 404
【发布时间】:2017-11-01 08:06:29
【问题描述】:

我刚刚测试了一个名为“WebApiServizio1”的工作 Web.Api,它受 OAuth2 BearerAuthentication(Owin 实现)保护,它已部署在我的 IIS WebServer 的根目录上。

我想更改当前的网络服务器配置,将“WebApiServizio1”web.Api 移动到新网站 WEBAPI 中。所以我可以托管多个 API(具有相同的主机和端口)。

IIS: WEBAPI 网站端口:80(AppPool:集成,4.0)

问题 但是,当我尝试使用 OWIN 中间件进行身份验证时,我无法获取令牌,我收到“404 - 未找到”响应,试图到达 TokenEndpointPath。

回顾:

http://localhost/WebApiServizio1/ HTTP 403.14 - 禁止正确! http://localhost/WebApiServizio1/oauth/token/ HTTP 404.0 - 未找到 - :(

这是当前的 Owin.Startup 配置:

客户端配置:

有什么想法吗?

【问题讨论】:

  • 我也有同样的问题。请发布您的解决方案..如果它是固定的。
  • 很抱歉目前没有解决方案,我们的项目已经停止。
  • 感谢您的更新,目前子域(子应用程序)在 IIS 中不支持 Token End PointPath,唯一的方法是创建一个新应用程序并托管目标 WEB API 解决方案。

标签: .net iis asp.net-web-api oauth-2.0 owin


【解决方案1】:

问题似乎是您的PostAsync() 通话中token 后面的/

改为写

using (HttpResponseMessage response = await client.PostAsync("/oauth/token", new FormUrlEncodedContent(values))) 

它应该可以工作。

附带说明:当您使用 DateTime.UtcNow.AddHours(8) 初始化 RefreshTokenProvider 时,您的所有刷新令牌在程序启动后 8 小时内有效,而不是在访问令牌发出后 8 小时。

【讨论】:

  • 我尝试删除尾部斜杠,但它仍然返回“未找到”消息。
  • 问题可能不止一个,去掉/就解决了其中一个。从上面的信息我看不出还有什么问题。您是否在与 IIS 相同的机器上运行客户端? IIS 是否配置为在 localhost 上侦听或仅在机器名称上侦听?
  • 还没有好消息。只是给你一些更新..它们都配置在同一台机器上,并且 IIS 设置为默认值(localhost)。
  • 对不起,我没有更多的想法。
【解决方案2】:

检查您的 Owin Startup 事件是否正在触发,并且它附加了这个未找到的 url。在我的情况下,这不是由于错误的命名空间。

【讨论】:

    【解决方案3】:

    在我的情况下,我直接部署了 bin\ 文件夹,但是我忘记发布 webapi,一旦我这样做了,一切都像魅力一样运行^_^

    【讨论】:

      【解决方案4】:

      在我的情况下,AllowInsecureHttp 设置为 false,这会在 http 上创建错误。

      【讨论】:

      • 这可能是因为您使用 https 调用端点。
      猜你喜欢
      • 2015-12-27
      • 2016-04-12
      • 2012-03-30
      • 1970-01-01
      • 2019-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-17
      相关资源
      最近更新 更多