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

如何无需发布在IIS上托管ASP.NET Core MVC(.NET8)项目?

实现ASP.NET Core MVC(.NET8) IIS直连项目目录的开发调试环境

1. 项目核心配置调整

  • 编辑项目文件(.csproj),添加/修改以下属性:
    <PropertyGroup>
      <TargetFramework>net8.0</TargetFramework>
      <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>
      <EnvironmentName>Development</EnvironmentName>
    </PropertyGroup>
    
  • 在Program.cs中启用视图热重载与开发环境配置:
    var builder = WebApplication.CreateBuilder(args);
    
    // 启用MVC服务及视图运行时编译(修改cshtml无需重新编译)
    builder.Services.AddControllersWithViews().AddRazorRuntimeCompilation();
    
    var app = builder.Build();
    
    if (app.Environment.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    app.UseStaticFiles();
    app.UseRouting();
    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    
    app.Run();
    

2. IIS站点与应用池配置

  • 创建或使用无托管代码的应用池:设置.NET CLR版本为无托管代码,管道模式选集成。
  • 在默认网站下添加TestMvc应用,物理路径指向项目编译输出目录(核心区别于MVC4:ASP.NET Core依赖编译后的文件,路径一般是项目根目录\bin\Debug\net8.0)。
  • 给输出目录、项目根目录下的wwwroot、obj、bin文件夹设置IIS_IUSRS和IUSR的完全控制权限。

3. 修改内容后快速生效

  • .cs代码文件:修改后按Ctrl+Shift+B编译解决方案,完成后刷新浏览器即可看到变更(进程内托管模式下IIS会自动重启应用加载新程序集)。
  • .cshtml视图文件:直接保存修改,刷新浏览器即可生效(已启用运行时编译)。

4. 附加调试到IIS进程

  • 打开VS,点击调试→附加到进程,找到对应应用池的w3wp.exe进程(进程内托管场景),选中后点击附加即可触发断点调试。

关键排查点

  • 若应用无法加载,执行命令行iisreset重启IIS,确保.NET Core Hosting Bundle生效。
  • 权限问题排查:可临时将应用池身份设为LocalSystem(仅开发环境),验证是否因权限不足导致加载失败。

内容的提问来源于stack exchange,提问作者Anil Bishnoi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:42:08