Mac下VS2019运行.Net Core 3.1 MVC项目报localhost 404错误
问题根因及修复方案
1. 若需运行带视图的MVC项目,需补充MVC相关配置
你当前Startup中的配置仅支持Web API接口,没有包含MVC视图的服务注册、路由规则,直接访问页面就会触发404报错,按如下内容修改即可:
修改Startup.cs的ConfigureServices方法
将services.AddControllers();替换为以下代码:
services.AddControllersWithViews();
修改Startup.cs的端点配置
将原Configure方法中的UseEndpoints代码块替换为:
app.UseEndpoints(endpoints => { // 配置MVC默认路由 endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); endpoints.MapControllers(); });
修改完成后补充HomeController和对应的Index视图,即可正常访问默认首页。
2. 若仅运行Web API项目,按以下规则排查修复
- 你当前的VendorRegistrationController仅定义了POST类型的接口,路由为
POST /api/VendorRegistration,如果直接在浏览器地址栏输入地址访问,浏览器默认发送GET请求,自然返回404,需要用Postman、Apifox等接口调试工具发送POST请求调用,才会正常返回结果。 - 你现有Post方法中调用的
CreatedAtAction("Get", ...)指向了不存在的Get接口,会导致接口调用成功后也抛出异常,需要在控制器中补充对应的Get方法:
[HttpGet("{id}")] public IActionResult Get(int id) { // 需要先在VendorRegistrationService中补充对应的单条数据查询方法 var data = vendorRegistrationService.GetById(id); return Ok(data); }
3. 其他通用排查点
- 打开项目Properties目录下的launchSettings.json文件,确认
applicationUrl的端口、launchUrl的默认启动路径是否符合你的预期 - 确认你访问的地址端口和程序启动后控制台输出的端口一致,Mac设备部分端口可能被系统占用,可更换未被占用的端口后重试
内容的提问来源于stack exchange,提问作者Yavuz
相关产品推荐
相关产品推荐

