VS2017运行组合框中IISExpress与QuickstartIdentityServer的区别
IIS Express 和 QuickstartIdentityServer 运行选项的区别
嘿,我来给你掰扯清楚这两个运行选项的核心区别——虽然它们都指向http://localhost:5000,访问起来效果一样,但背后的运行机制完全不同:
1. IIS Express 选项
- 它是微软为开发场景提供的轻量级IIS服务器,本质上是通过IISExpress进程来托管你的ASP.NET Core应用
- 对应配置里的
"commandName": "IISExpress",启动时会调用IISExpress的启动逻辑,依赖iisSettings里的配置项(比如匿名认证、端口设置) - 运行时后台会启动
iisexpress.exe进程,你的应用作为IIS的子应用运行,调试时目标进程是这个exe文件
2. QuickstartIdentityServer 选项
- 这个是直接用ASP.NET Core自带的Kestrel服务器来托管应用,
"commandName": "Project"表示直接启动项目本身,不需要经过IIS Express中转 - 启动时会直接执行你项目的入口逻辑(比如
Program.cs里的启动代码),调试时目标进程就是你的项目生成的exe文件(比如QuickstartIdentityServer.exe) - 它的配置更独立,
applicationUrl直接指定了Kestrel要监听的地址,不依赖IIS相关的配置
为什么看起来效果一致?
因为你在两个配置里都把applicationUrl设为了http://localhost:5000,并且都使用Development环境变量,所以前端访问的页面和功能表现完全相同,但底层的服务器托管方式天差地别。
小提示
- 如果要模拟生产环境的Kestrel部署场景,选
QuickstartIdentityServer选项更贴近真实情况 - 如果要测试IIS专属的配置(比如Windows身份验证、URL重写规则等),就选
IIS Express选项
内容的提问来源于stack exchange,提问作者Kirsten
相关产品推荐
相关产品推荐

