.NET 6 ASP.NET MVC应用部署至IIS 10遇阻求权威步骤指导
.NET 6 ASP.NET MVC 应用部署至 IIS 10(进程内模式)权威配置步骤
前置准备
- 确认服务器已安装ASP.NET Core Hosting Bundle for .NET 6:该安装包会自动完成ASP.NET Core Module的注册及IIS集成配置,无需手动操作。
- 服务器需为Windows Server 2016及以上/Windows 10 1607及以上版本,确保IIS 10支持进程内托管模式。
应用发布配置
- 在Visual Studio中右键项目,选择发布,目标选择文件夹,点击下一步。
- 点击显示所有设置,在部署模式中选择框架依赖,目标运行时匹配服务器系统架构(如
win-x64)。 - 切换到高级标签,确认托管模型设置为进程内(默认即为进程内,若被修改需改回),保存设置后完成发布。
IIS 服务器配置
应用池设置
- 打开IIS管理器,新建独立应用池:
- 自定义应用池名称(如
DotNet6MvcPool)。 - .NET CLR版本选择无托管代码(进程内模式下,ASP.NET Core应用直接托管于IIS工作进程,无需传统CLR托管)。
- 托管管道模式选择集成(进程内模式依赖IIS集成管道,必须设置为集成)。
- 进入应用池高级设置:
- 确认进程模型-标识权限足够(默认
ApplicationPoolIdentity,若需访问本地文件/数据库,需给该身份分配对应读取/写入权限)。 - 按需调整快速失败保护参数(默认开启,可根据应用稳定性调整)。
- 确认进程模型-标识权限足够(默认
- 自定义应用池名称(如
网站配置
- 右键网站→添加网站:
- 自定义网站名称,关联刚才创建的应用池。
- 物理路径指向应用发布后的文件夹,确保应用池身份对该文件夹拥有读取和执行权限。
- 配置合适的端口/域名绑定,完成网站创建。
验证与故障排查
- 检查应用根目录下的
web.config,确认进程内模式配置:
重点确认<aspNetCore processPath="dotnet" arguments=".\YourAppName.dll" hostingModel="InProcess" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />hostingModel="InProcess",若缺失需手动添加。 - 启用日志排查:将
stdoutLogEnabled设为true,在应用根目录创建logs文件夹(给应用池身份写入权限),运行应用后查看日志定位错误。 - 验证.NET 6运行时:在服务器命令行执行
dotnet --info,确认存在.NET 6.x版本的运行时环境。 - 检查IIS模块:在IIS管理器的服务器节点下,进入模块,确认存在
AspNetCoreModuleV2模块。
内容的提问来源于stack exchange,提问作者endurium
相关产品推荐
相关产品推荐

