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

ASP.NET MVC项目发布至IIS后出现开发模式错误

核心原因

你改launchsettings.json只对本地用VS启动调试的场景生效,部署到IIS之后这个文件的配置不会被加载,当前IIS上的站点实际仍运行在Development环境,加上可能存在基础配置缺失、托管模块未安装的问题,才会触发该报错。

解决步骤
  • 给IIS站点配置生产环境变量
    打开IIS管理器找到你部署的目标站点,双击「配置编辑器」,节选择system.webServer/aspNetCore,点开environmentVariables项新增配置:
    • 变量名:ASPNETCORE_ENVIRONMENT
    • 变量值:Production
      填完点击右上角应用,重启站点即可。
  • 重新正确发布项目
    右键项目选择发布,发布设置里一定要勾选「发布期间删除所有现有文件」,避免本地调试生成的旧配置残留到发布目录,发布配置选Release模式,不要用Debug模式发布。
  • 检查项目中间件配置
    打开项目里的Program.cs(.NET 6及以上版本)或者Startup.cs(.NET 5及以下版本),确认环境判断和中间件顺序没有写错:
    // 生产环境关闭开发者异常页
    if (!app.Environment.IsDevelopment())
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }
    // 以下中间件不要遗漏,顺序不能随意调整
    app.UseHttpsRedirection();
    app.UseStaticFiles();
    app.UseRouting();
    app.UseAuthorization();
    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    
  • 安装对应版本的托管组件
    检查部署服务器有没有安装和你项目.NET大版本对应的ASP.NET Core Hosting Bundle,未安装的话装完执行iisreset命令重启整个IIS服务。
  • 配置目录权限
    找到站点对应的物理部署文件夹,给IIS_IUSRS用户开启读取、执行权限,避免程序因为权限不足读不到DLL、配置文件导致启动失败。

排查小技巧:配置完成后可以先在部署目录放一个普通静态html文件,能正常访问该文件后再测试MVC路由,先排除静态模块的问题,排查效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 18:03:16