You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VS2017调试.NET Core Web API:除‘Project’或‘Executable’外还需哪些配置?浏览器调试失败求助

解决VS2017调试.NET Core Web API的IIS启动及404问题

一、修复IIS Express无法启动的问题

你遇到的"IIS启动提示需选择executable或project"问题,核心是配置错误加缓存干扰,按以下步骤逐一排查:

  1. 修正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" 
      } 
    }
    
  2. 重置VS启动项目配置

    • 右键解决方案 → 属性 → 启动项目,确保选中你的Web API项目,且启动方式设置为"IIS Express"。
    • 关闭VS,删除解决方案根目录下的隐藏.vs文件夹(存储VS缓存配置),再重新打开项目,清除可能的残留异常配置。
  3. 修复IIS Express
    打开VS的「工具」→「选项」→「项目和解决方案」→「Web项目」,点击「修复IIS Express」按钮,等待修复完成后重启VS。

二、解决Project启动后API 404的问题

切换到Project(Kestrel)启动时出现404,基本是路由配置缺失或不匹配导致的,按以下方向检查:

  1. 确认路由配置完整性

    • 若使用.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();
      
  2. 验证请求路径与launchUrl匹配
    检查launchSettings.json中Project配置块的launchUrl是否和你的路由规则一致,比如控制器路由是api/values,则请求路径应为http://localhost:<端口>/api/values,而非直接访问根路径。

三、额外排查点

  • 确保VS2017安装了最新更新补丁,旧版本对.NET Core 6.0的兼容性可能存在问题。
  • 核对项目目标框架版本:右键项目→属性→应用程序→目标框架,确认和你安装的.NET Core SDK/Runtime版本一致。

内容的提问来源于stack exchange,提问作者Jay M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 09:42:36