为什么 Blazor API 调用在我重命名 API 方法之前会停止工作

问题描述 投票:0回答:1

我有一个 blazor WASM 应用程序,包含 3 个项目:客户端、服务器、共享。

作为一个简单的示例,我将通过以下方式从客户端调用我的 API:

var result = await http.GetAsync($"{controller}/GetAllItems");

在服务器端我的 API 定义为:

[ApiController]
[Route("[controller]/[action]")]
public class ItemController : Controller

    [HttpGet]
    public async Task<ActionResult<List<POCO>>> GetAllItems()
    {
      var items = await repository.GetItems();
      return Ok(items);
    }    

这段代码已经运行良好两周了。 直到今天,它停止工作了。 经过调试,我发现名称:GetAllItems不再起作用。

将方法名称从 GetAllItems 更改为 GetAllItemsNew 后,代码再次正常工作。

几个小时后,用另一种方法又发生了这种情况。

blazor API 会停止路由到特定方法名称,但继续为其他方法名称工作,这是否有原因?

编辑

按照评论中的建议,我安装了Postman。 我无法通过 Postman 连接到我的 API。 在我的应用程序中:

  • 我将 App.UseAuthentication 添加到 StartUp.Configure()
  • 我将控制器标记为 [AllowAnonymous]
  • 我开始从 Visual Studio 以调试模式运行应用程序

在邮递员

  • 我禁用了 SSL 证书验证
  • 我对 localhost:44383/ItemController/GetAllItems 执行了 GET

我收到以下错误:

<!DOCTYPE html>
<html>

<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <title>TestApp</title>
    <base href="/" />
    <link href="css/bootstrap/bootstrap.min.css" rel="stylesheet" />
    <link href="css/app.css" rel="stylesheet" />
    <link href="TestApp.Client.styles.css" rel="stylesheet" />
</head>

<body>
    <div id="app">Loading...</div>

    <div id="blazor-error-ui">
        An unhandled error has occurred.
        <a href="" class="reload">Reload</a>
        <a class="dismiss">🗙</a>
    </div>
    <script src="_framework/blazor.webassembly.js"></script>
</body>

</html>
blazor blazor-webassembly
1个回答
0
投票

Абсолютно идентичная ситуация。方法: 关闭按钮、关闭按钮 Ctrl + f5、关闭按钮和关闭按钮。 Помогла очистка кэша браузера вручную через историю браузера.

© www.soinside.com 2019 - 2024. All rights reserved.