无法在 Blazor 服务器上设置控制器

Unable to setup a controller on Blazor Server

我正在尝试向我的 Blazor Server 项目添加 MVC、WebAPI 或任何控制器。

我已经阅读了很多关于此事的 SO 问题、博客等,例如 this。 None 他们工作。

当我在调试中启动我的应用程序并尝试使用 Postman 发出请求时,无论我在“Configure”或“ConfigureServices”方法中向我的“端点”或“应用程序”添加什么,它都会超时。

我试过了:

完全按照链接答案中所示添加控制器。

在我的启动中添加所有这些:

Postman 没有得到任何答案(超时),我在控制器的“Get”方法中设置的断点也没有被触发。

我该怎么做才能让控制器工作?

我做了以下(“在我的机器上工作”):

  1. 创建一个新的 BlazorApp:
dotnet new blazorserver -o BlazorApp --no-https
  1. 添加控制器:
namespace BlazorApp.Controllers
{
  using Microsoft.AspNetCore.Mvc;

  [ApiController]
  public class TestController : ControllerBase
  {
    [HttpGet("test")]
    public ActionResult<string> Test()
    {
      return "TODO";
    }
  }
}
  1. endpoints.MapControllers(); 添加到 Satrtup.cs
app.UseEndpoints(endpoints =>
{
    endpoints.MapControllers();            // new
    endpoints.MapBlazorHub();              // existing
    endpoints.MapFallbackToPage("/_Host"); // existing
});
  1. 运行 应用

  2. 转到 http://localhost:5000/test(您将获得 "TODO" 响应)

  3. 转到 http://localhost:5000(您将看到 Blazor 页面)

编辑

@Tessaract 在评论中提到该站点 运行 在 HTTPS 上运行,而纯 HTTP 正在被查询(因此不起作用)。