asp.net core如何自定义端口/修改默认端口
.net core运行的默认端口是5000,但是很多时候我们需要自定义端口。有两种方式
写在Program的Main方法里面
添加 .UseUrls()
var host = new WebHostBuilder()
.UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory())
//添加这一行
.UseUrls("http://*:5001", "http://*:5002")
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
添加 .UseSetting()
var host = new WebHostBuilder()
.UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory())
//添加这一行
.UseSetting(WebHostDefaults.ServerUrlsKey, "http://*:5001;http://*5002")
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
小结
UseUrls是UseSetting设置端口的一个封装而已,源码
public static IWebHostBuilder UseUrls(this IWebHostBuilder hostBuilder, params string[] urls)
{
if (urls == null)
{
throw new ArgumentNullException(nameof(urls));
}
return hostBuilder.UseSetting(WebHostDefaults.ServerUrlsKey, string.Join(ServerUrlsSeparator, urls));
}
写在配置文件中
- 在项目中新建一个.json文件,例如
config/hosting.json.内容:
{
"urls": "http://*:5003;http://*:5004"
}
Main方法添加配置
// using Microsoft.Extensions.Configuration;
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
// 这里添加配置文件
.AddJsonFile(Path.Combine("config", "hosting.json"), true)
.Build();
var host = new WebHostBuilder()
.UseKestrel()
// 添加配置
.UseConfiguration(config)
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
host.Run();
}
- 最后别忘了在
project.json中添加输出配置:(像我就直接把整个config目录放进去了)
"publishOptions": {
"include": [
"wwwroot",
"**/*.cshtml",
"appsettings.json",
"web.config",
"config"
]
},
小结
其实这种方法最终也是变成UseSetting,用appsetting.json也可以做到,源码:
public static IWebHostBuilder UseConfiguration(this IWebHostBuilder hostBuilder, IConfiguration configuration)
{
foreach (var setting in configuration.AsEnumerable())
{
hostBuilder.UseSetting(setting.Key, setting.Value);
}
return hostBuilder;
}
用环境变量
- 环境变量的名字
ASPNETCORE_URLS(过时的名字是:ASPNETCORE_SERVER.URLS) - 设置临时环境变量
- linux:
export ASPNETCORE_URLS="http://*:5001" - windows:
set ASPNETCORE_URLS="http://*:5001"
- linux:
- 设置完之后运行即可
dotnet xxx.dll
小结
环境变量的方法为何能实现?在WebHostBuilder的构造函数中存在着这么一句:
_config = new ConfigurationBuilder()
.AddEnvironmentVariables(prefix: "ASPNETCORE_")
.Build();
总结
前两种方法都是会变成UseSetting,而UseSetting的实现也很简单
public IWebHostBuilder UseSetting(string key, string value)
{
_config[key] = value;
return this;
}
只是设置了个key,value。环境变量方法最后也是设置个key,value。
那么,那种方法比较好呢?个人认为环境变量方法好一点,灵活,不用在代码里面多写一句代码。
注意: 在上面中设置端口的http://*:xxx中,*别改成localhost或者ip,因为这样要么外网访问不了要么内网访问不了,相当蛋疼,写*改变环境也不用改,多爽!
asp.net core如何自定义端口/修改默认端口的更多相关文章
- 如何在ASP.NET Core中自定义Azure Storage File Provider
文章标题:如何在ASP.NET Core中自定义Azure Storage File Provider 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p ...
- ASP.NET Core Identity自定义数据库结构和完全使用Dapper而非EntityFramework Core
前言 原本本节内容是不存在的,出于有几个人问到了我:我想使用ASP.NET Core Identity,但是我又不想使用默认生成的数据库表,想自定义一套,我想要使用ASP.NE Core Identi ...
- 【Docker】Asp.net core在docker容器中的端口问题
还记得[One by one系列]一步步学习docker(三)--实战部署dotnetcore中遇到的问题么?容器内部启动始终是80端口,并不由命令左右. docker run --name cont ...
- ASP.NET Core MVC – 自定义 Tag Helpers
ASP.NET Core Tag Helpers系列目录,共四篇: ASP.NET Core MVC Tag Helpers 介绍 ASP.NET Core MVC – Caching Tag Hel ...
- 如何在Spring boot中修改默认端口
文章目录 介绍 使用Property文件 在程序中指定 使用命令行参数 值生效的顺序 如何在Spring boot中修改默认端口 介绍 Spring boot为应用程序提供了很多属性的默认值.但是有时 ...
- centos6.5 ssh安全优化,修改默认端口名,禁止root远程登录
一.修改默认端口号 第一步: vi /etc/sysconfig/iptables 添加修改后的端口号的配置 -A INPUT -p tcp -m state --state NEW -m tcp - ...
- Memcached修改默认端口
windows下修改memcached服务的端口号(默认端口:11211)如果不是作为服务启动memcached的话,memcached -p 端口号就可以了. 通过修改注册表可以简单实现 运行:re ...
- MySQL5.7添加授权账号及修改默认端口
1.修改默认端口 打开配置文件 vim /etc/my.cnf 分别添加端口在client.mysql节点 [client] port=15099 [mysqld] port=15099 需要注意se ...
- tomcat修改默认端口
1.webserver: tomcat2.version: Apache Tomcat/7.0.293.operation: 修改默认端口 3.1 修改tomcat目录下的/conf/server ...
随机推荐
- UML中类图的一些基本知识
一.类 类(class)封装了数据和行为,是面向对象的重要组成部分,他是具有相同操作.属性.关系的对象集合的总称. 在软件运行时,类被实例化成对象(object),对象对应某个具体的事物,是类的实例( ...
- C语言范例学习06-上
第六章 文件操作 前言:第五章是C语言在数学上的一些应用,我觉得没有必要,便跳过了.这章正如我标题所写的,是C语言在文件上的操作.学习了这个后,你们可以自行编辑一些所需的快捷程序,来实现一些既定的目的 ...
- H5 调用手机摄像机、相册功能
<input type="file" accept="image/*" capture="camera"> <input ...
- addEventListener attachEvent和解决IE 6 7 8 this指向错误
[JS] addEventListener attachEvent和解决IE 6 7 8 this指向错误 电梯直达 1# php 发表于 2014/4/13 01:17 | 只看该作者 ...
- Es6主要特征详解
一.简介 本文将对es6的最佳特性进行分享和讲解.es6也称ES6/ECMAScript2015,在2015年诞生,但是目前实际开发中还很多用的是ES5(2009年),原因就是很多的浏览器不支持新的语 ...
- faster-rcnn系列笔记(一)
目录: 1. 序言 2.正文 2.1 关于ROI 2.2 关于RPN 2.3 关于anchor 3. 关于数据集合制作 4. 关于参数设置 5. 参考 1.序言 叽歪一下目标检测这个模型吧,这篇笔 ...
- CSS清除浮动的几种方式
浮动对页面的影响: 如果一个父盒子中有一个子盒子,并且父盒子没有设置高,子盒子在父盒子中进行了浮动,那么将来父盒子的高度为0.由于父盒子的高度为0, 下面的元素会自动补位,所以这个时候要进行浮动的清除 ...
- BZOJ:4333: JSOI2012 智者的考验
4333: JSOI2012 智者的考验 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 68 Solved: 18[Submit][Status][ ...
- 迷宫问题(bfs+记录路径)
题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=105278#problem/K K - 迷宫问题 Time Limit:1000 ...
- Linux下采用VI编辑器删除复制或移动多行文本内容
一.删除多行 单行删除,:1(待删除行号)d 多行删除,:1,10d dd 删除光标所在行ndd删除以当前行开始的n行dw删除以当前字符开始的一个字符ndw删除以当前字符开始的n个字符d$.D删除以当 ...