如何在IIS上以开发模式托管ASP.NET Core 8 MVC应用用于本地调试
在IIS上以开发模式托管ASP.NET Core 8 MVC应用(本地调试用)
前置准备
- 安装ASP.NET Core 8 Runtime(包含ASP.NET Core模块),确保IIS能处理.NET Core应用
- 启用IIS必要功能:通过「控制面板→程序和功能→启用或关闭Windows功能」,开启「ASP.NET Core模块」「静态内容」等相关组件
项目配置
启用开发环境特性
打开项目根目录的Program.cs,添加开发环境专属配置,让视图修改无需重新构建,同时启用开发者异常页便于调试:var builder = WebApplication.CreateBuilder(args); // 注册MVC服务 builder.Services.AddControllersWithViews(); // 开发环境下启用Razor运行时编译,修改视图直接生效 if (builder.Environment.IsDevelopment()) { builder.Services.AddControllersWithViews().AddRazorRuntimeCompilation(); } var app = builder.Build(); // 配置中间件 if (app.Environment.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseStaticFiles(); app.UseRouting(); app.UseAuthorization(); app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); app.Run();构建项目到开发输出目录
打开命令行进入项目根目录,执行开发模式构建命令:dotnet build --configuration Development构建产物默认生成在
项目根目录/bin/Development/net8.0下。
IIS站点配置
创建新站点
打开IIS管理器,右键「网站」→「添加网站」:- 站点名称:自定义(如
AspNetCoreDevSite) - 物理路径:选择刚才的开发输出目录(
bin/Development/net8.0) - 绑定:IP选
localhost,端口填未被占用的数值(如5001),主机名留空 - 点击「确定」完成创建
- 站点名称:自定义(如
配置开发环境变量
右键刚创建的站点→「管理网站」→「高级设置」:- 找到「环境变量」,点击右侧「...」按钮
- 添加变量:名称
ASPNETCORE_ENVIRONMENT,值Development - 保存设置
调整应用池设置
在IIS管理器的「应用池」中,找到对应站点的应用池:- 右键→「高级设置」
- 将「.NET CLR版本」设为无托管代码,保存设置
验证与变更测试
- 启动IIS站点,在浏览器访问
http://localhost:5001(对应你设置的端口),确认应用正常运行 - 修改项目代码(如控制器逻辑)后,重新执行
dotnet build --configuration Development,等待构建完成后刷新浏览器,即可看到变更 - 若修改的是Razor视图,无需重新构建,直接刷新浏览器就能生效(已启用Razor运行时编译)
内容的提问来源于stack exchange,提问作者Anil Bishnoi
相关产品推荐
相关产品推荐

