指定 ASP.NET Core 应用监听的端口
指定 ASP.NET Core 应用监听的端口
ASP.NET Core 应用默认监听的端口是 5000 , 在调试或者部署的过程中经常需要指定监听的端口来来运行, 本文就这个问题, 进行一个总结, 可以通过下面的方法来指定运行端口。
使用命令行参数
使用命令行参数 --urls
是最常用的方法了, 测试或者开发环境下用的最多。 只需要在运行命令中添加这个参数即可, 如下所示:
dotnet run --urls=http://localhost:5001/
在 appsettings.json
中添加配置
如果倾向于使用配置文件, 可以在 appsettings.json
文件中添加 urls
节点, 如下所示:
{
"urls": "http://localhost:5001"
}
这样, 执行 dotnet run
时, 会自动读取这个配置。
环境变量
ASP.NET Core 应用在启动时会自动读取名称以 ASPNETCORE
开头的环境变量, 所以也可以通过环境变量来指定监听的端口。
export ASPNETCORE_URLS=http://localhost:5001/
dotnet run
在微软提供的
mcr.microsoft.com/dotnet/core/aspnet
Docker 镜像中, 就是用这个环境变量来指定监听端口的。
使用 UseUrls()
函数
如果倾向于使用代码, 则可以在 Program.cs
文件中的 ConfigureWebHostDefaults
方法中使用 UseUrls()
函数, 在代码中指定要监听的端口:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(builder => {
builder.UseStartup<Startup>();
builder.UseUrls("http://localhost:5001/");
});
在实际的项目中, 可以将要监听的端口配置到其它地方, 而不必硬编码在代码中过。
使用 Kestrel 服务器选项
ASP.NET Core 内置的 kestrel 服务器, 也提供了许多选项, 当然也包括了要监听的端口, 要在应用中使用 Kestrel 服务器选项, 需要在 Program.cs
文件中的 CreateHostBuilder
方法中添加 ConfigureServices
方法, 对 KestrelServerOptions
进行配置, 代码如下:
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureServices((context, services) => {
services.Configure<KestrelServerOptions>(
context.Configuration.GetSection("kestrel")
);
})
.ConfigureWebHostDefaults(builder =>{
builder.UseStartup<Startup>();
});
也可以在
Startup.cs
文件中的ConfigureServices
方法中进行配置。
然后在 appsettings.json
中添加 kestrel
节点, 内容如下所示:
{
"kestrel": {
"endPoints": {
"http": {
"url": "http://localhost:5001/"
}
}
}
}
KestrelServerOptions
还提供了许多额外的配置选项, 比如最大并发连接数、是否返回服务器名称标头等, 具体可以参考 kestrel-aspnetcore-3.1 , 如果需要同时调整额外的服务器配置, 则推荐使用这种方式。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- linux下open-vswitch安装卸载操作
- CentOS7安装GUI界面及远程连接的实现
- Centos7.4环境安装lamp-php7.0教程
- iOS摄像头推流(2)
- ubuntu 16.04LTS 开机启动自动更换壁纸的实现方法
- linux中Centos7的LVM磁盘扩容问题
- 如何禁止网站内容被搜索引擎收录的几种方法讲解
- Apache由http自动跳转到https的多种方法
- CentOS服务器中安装FFmpeg的完整步骤
- linux中Centos7增加swap分区详解
- CentOS7如何重置root密码的方法
- Linux下RPM打包制作过程
- linux ssh端口转发的三种方式
- 学习Centos7软raid5的挂载
- linux中crw brw lrw等等文件属性是什么