【问题标题】:Dots in URL causes 404 with Web API call in .net coreURL 中的点导致 404 与 .net 核心中的 Web API 调用
【发布时间】:2023-03-10 20:20:01
【问题描述】:

我有一个类似的要求,在链接 Dots in URL causes 404 with ASP.NET mvc and IIS 中提到。我们的要求是,我们也确实有路径中带有点的 URL。例如,我可能有一个 URL,例如 www.example.com/people/michael.phhelps(这个例子取自上面的链接) 带有点的 URL 会生成 404。如果我们不带点通过,那么一切正常。如果我们添加点,我会收到 404 错误。

上面的链接为早期版本的 .net 提供了解决方案,我们可以在其中拥有 webconfig 文件。但我们正在使用 .net 核心来构建 Web API 应用程序。 Dotnet 核心不支持 webconfig 文件。有人可以建议我们如何使用 .net 核心来解决问题。

【问题讨论】:

  • 分享您的路由配置方式。像[HttpGet("/before.after")] 这样的简单路由对我来说很好。
  • 不要忘记像 www.example.com/people/michael.phelps/ 那样附加斜杠,它应该可以工作
  • 我们使用属性路由。 before.after 对我们不起作用,因为我们不知道路径中有多少点。例如,dit.web.config
  • 显示失败的属性路由示例?
  • 这就是我们在 API 控制器中定义方法的方式 [Route("~/api/HierarchyProperty/store/{store}/hierarchy/{*hierarchy}")] [HttpGet] public Dictionary GetByName(string store, string hierarchy) { return this.hierRep.Get(store, hierarchy); }

标签: asp.net-core asp.net-core-webapi


【解决方案1】:

迟到的答案,但我们有类似的情况:

我们的网址看起来像 https://domain.com/somepath/smoething.cd

这从 IIS 返回 404。在 .cd 后面的 url 末尾添加 / 解决了这个问题。

奇怪但值得注意:并非 all.something 返回 404,例如路径末尾的 .com 有效

【讨论】:

    猜你喜欢
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 2020-10-08
    • 2019-10-25
    • 1970-01-01
    • 2020-07-07
    相关资源
    最近更新 更多