架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 20611|回复: 1

[.NET Core] .net core 网站启动域名及端口配置

[复制链接]
发表于 2017-5-24 13:30:59 | 显示全部楼层 |阅读模式
前两天转载一篇.net core 启动分析,由于发布时候一直纠结在默认5000端口上,所以好好研究了一下。

1.IIS集成

如果通过IIS当宿主的话,那这些都不是事情,强大的IIS可以帮助我们对站点的域名、端口等等等等的配置。至于如何在IIS上部署asp.net core的web应用,就不是这里的重点。大致简单的描述一下:

需要下载Net Core SDK 与 Server Hosting,下载地址https://www.microsoft.com/net/download
638965-20160905164858644-1583031640.png


安装完查看.net core sdk是否安装成功命令行dotnet info

server host 是否安装成功iis模块与处理程序映射中查看如下
365055-20160710212538780-1414296664.png


然后建立站点,指定到发布站点的文件

最后就是应该程序池配置,选择无托管,这样有server host转发请求。

365055-20160710214050264-193623122.png



2.Linux环境

具体安装就不说了,也是一大堆。根据官网指示,也就是安装.net core运行环境就可以运行了。

这里推荐一篇博文,大家自行参考 将ASP.NET Core应用程序部署至生产环境中(CentOS7)



回到重点,如何配置url及端口参数

1.在Program的Main方法里面指定




这种方法不灵活,即使通过增加配置文件去读,也不是那么优雅。这个时候,本人就觉得微软肯定不会推荐这么用的,于是继续找。

2.通过环境变量

网上看到有一篇How to configure Kestrel URLs in ASP.NET Core RC2,

虽然还是通过配置文件配置,但是它不向其他文章,不需要读出配置信息,直接绑定就能用,还是贴代码看:

hosting.json


Program.cs



这样它也能监听

Now listening on: http://localhost:60000

Now listening on: http://localhost:60001

是不是很神奇!实战受不了了,扣源码!目前为止.net core最好的地方就是有源码!

通过溯源,我们可以知道主要是 WebHostBuilder 这个类,在Microsoft.AspNetCore.Hosting命名空间下。

主要的方法还是Build



这边主要是构建一个WebHost对象,然后更进去看

通过Initialize方法查看源代码,我们可以知道是EnsureServer这个方法创建的url地址




这里我们可以知道,原来它自己会从配置里面去读 _config[WebHostDefaults.ServerUrlsKey] 和 _config[DeprecatedServerUrlsKey]

WebHostDefaults.ServerUrlsKey的值是固定值

638965-20160905173712316-1833609478.png

DeprecatedServerUrlsKey的值在WebHost这个对象一开始就定义了

638965-20160905173813066-1085603121.png

哦!真相大白了。所以我们在配置文件里面设置“server.urls”就可以了。


总结:

综上所述,asp.net core启动的时候会自行读取环境变量里面的配置,实际点就是在项目属性里面增加如下配置:

638965-20160905215309019-502640029.png

已控制台方式启动,发现已经切换了端口。

那么这个是在开发环境,如何在产线部署呢。这个也很简单,以linux上部署为例,以守护进程supervisor启动程序,在supervisor的启动配置里面增加环境变量:


大功告成!一行代码都不需要改,哈哈~




上一篇:Starting supervisor: Error: Another program is already listening on a port th...
下一篇:css pc和手机端宽度适配问题
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2021-10-6 09:49:34 | 显示全部楼层
好东西。感谢楼主提供!!!!
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-3-29 21:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表