ASP.NET Core 应用程序部署到 IIS 某站点下, 设置该站点端口为 :8080, 程序是怎么接收到这个端口号并启动监听的呀? please show me the code/doc...thanks
启动时会获取环境变量 ASPNETCORE_PORT 提供的对应信息作为端口号,
换句话说,外部设置可控,但是我们的程序总要接收和处理此环境变量 ASPNETCORE_PORT 作为侦听的端口号即可.
这里有个 go 语言的实例 如何在 IIS 上部署 Go API?
IIS 转发请求给 Kestrel ,推荐阅读 Web server implementations in ASP.NET Core
那我现在托管的是非 ASP.NET Core 应用程序呢? 我想了解下 IIS 启动的时候分配的端口号, 程序是通过什么方式接收到的? 或者说 IIS 是通过上面方式把这个端口号传递给应用程序的.
我了解的常见的方式是 环境变量/命令行参数/编码指定. 但是在部署的 ASP.NET Core 应用程序中并没有看到任何相关的设置.
@taadis: 端口号与应用程序没有关系
@dudu: 我理解的是程序启动时会监听把持某个端口, 不然怎么提供服务? 所以不是很理解你说的端口号跟应用程序没有关系?
@taadis: 推荐阅读园子里的博文 ASP.NET Core 运行原理解剖[1]:Hosting
IIS是一个web服务器,充当一个宿主角色,其他的应用程序也可以充当宿主,比如WCF的宿主可以是 Windows 服务、COM+应用程序、WAS(Windows Activation Services,Windows进程激活服务)或IIS、Windows应用程序,或简单的控制台应用程序及任何.net程序。
如果你要探究IIS是如何进行端口监测的,可以研究下CassiniDev的源码,一个轻量级的web服务器