VS2017调试.NET Core Web API:除‘Project’或‘Executable’外还需哪些配置?浏览器调试失败求助
解决VS2017调试.NET Core Web API的IIS启动及404问题
一、修复IIS Express无法启动的问题
你遇到的"IIS启动提示需选择executable或project"问题,核心是配置错误加缓存干扰,按以下步骤逐一排查:
修正launchSettings.json的commandName
你的配置里把IIS Express的commandName写成了"IIS",这是关键错误——VS2017中.NET Core项目的IIS Express启动命令必须是"IISExpress"。修改后的配置块应为:"IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "launchUrl": "api/values", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }重置VS启动项目配置
- 右键解决方案 → 属性 → 启动项目,确保选中你的Web API项目,且启动方式设置为"IIS Express"。
- 关闭VS,删除解决方案根目录下的隐藏
.vs文件夹(存储VS缓存配置),再重新打开项目,清除可能的残留异常配置。
修复IIS Express
打开VS的「工具」→「选项」→「项目和解决方案」→「Web项目」,点击「修复IIS Express」按钮,等待修复完成后重启VS。
二、解决Project启动后API 404的问题
切换到Project(Kestrel)启动时出现404,基本是路由配置缺失或不匹配导致的,按以下方向检查:
确认路由配置完整性
若使用.NET Core 2.1:在
Startup.cs的Configure方法中,必须添加MVC路由配置,示例如下:public void Configure(IApplicationBuilder app, IHostingEnvironment env) { // 其他中间件配置... app.UseMvc(routes => { routes.MapRoute( name: "default", template: "api/{controller=Values}/{action=Get}/{id?}"); }); }或者使用属性路由,确保控制器和方法上标注正确:
[Route("api/[controller]")] [ApiController] public class ValuesController : ControllerBase { [HttpGet("values")] public IEnumerable<string> GetValues() { return new string[] { "value1", "value2" }; } }若使用.NET Core 6.0:在
Program.cs中必须包含控制器服务注册和路由映射:var builder = WebApplication.CreateBuilder(args); // 添加控制器服务 builder.Services.AddControllers(); var app = builder.Build(); // 映射控制器路由 app.MapControllers(); app.Run();
验证请求路径与launchUrl匹配
检查launchSettings.json中Project配置块的launchUrl是否和你的路由规则一致,比如控制器路由是api/values,则请求路径应为http://localhost:<端口>/api/values,而非直接访问根路径。
三、额外排查点
- 确保VS2017安装了最新更新补丁,旧版本对.NET Core 6.0的兼容性可能存在问题。
- 核对项目目标框架版本:右键项目→属性→应用程序→目标框架,确认和你安装的.NET Core SDK/Runtime版本一致。
内容的提问来源于stack exchange,提问作者Jay M
相关产品推荐
相关产品推荐

