Razor Pages开发的VK机器人站点POST JSON返回404错误求助
问题根因排查
核心错误点
404错误由路由配置缺失导致:
你已经在Startup.cs的ConfigureServices方法中调用services.AddControllers()注册了控制器服务,但在终结点路由配置环节,仅映射了Razor Pages的路由,没有注册控制器的路由规则,所有/api/*路径都无法被路由系统匹配,因此返回404。
修复方案
修改Startup.cs中UseEndpoints的代码,添加控制器路由映射即可:
app.UseEndpoints(endpoints => { endpoints.MapRazorPages(); // 新增这行注册控制器路由 endpoints.MapControllers(); });
额外注意事项
- 你的控制器路由标注为
[Route("api/[controller]")],[controller]占位符会自动替换为控制器类名去掉Controller后缀的内容,也就是Callback,ASP.NET Core路由默认不区分大小写,因此请求https://centroban.herokuapp.com/api/callback可以正常匹配,不需要额外调整路由规则。 - 代码中
RandomId = new DateTime().Millisecond的写法有概率生成重复的随机ID,会导致VK消息发送失败,建议替换为RandomId = new Random().Next()或者使用Guid生成唯一值。
内容的提问来源于stack exchange,提问作者Данил Димухаметов
相关产品推荐
相关产品推荐

