我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ASP.NET Core设置URLs的五种方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ASP.NET Core设置URLs的五种方法

前言

在使用ASP.NET Core 3.1开发时,需要配置服务器监听的端口和协议,官方帮助文档进行简单说明,文档中提到了4种指定URL的方法

  • 设置ASPNETCORE_URLS 环境变量;
  • 使用dotnet --urls 命令行参数;
  • 使用urls作为键进行配置;
  • 使用UseUrls扩展方法;

为便于讲清楚URLs设置方法,创建名为AspNetCoreUrl的ASP.NET Core Web API程序进行说明,默认情况下,启动ASP.NET Core后,监听以下URLs:

​http://localhost:5000/

​https://localhost:5001/

URL格式

主要有三种URL格式表达方式,可以查看官方文档(https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1)

格式1:{scheme}://{loopbackAddress}:{port},例如http://localhost:5000/https://localhost:5001/

格式2:{scheme}://{IPAddress}:{port},例如http://127.0.0.1:5000/https://192.168.1.100:5001/

格式3:{scheme}://*:{port},例如http://*:5000/https://domain.com:5001/

前提条件

在开始测试几种URLs设置方法前,需要先生成AspNetCoreUrl程序,然后在生成的根目录下打开命令行工具进行相应的测试

如图,我这里的程序根目录为D:\AspNetCoreUrl\AspNetCoreUrl\bin\Debug\netcoreapp3.1,使用的终端为微软官方的Windows PowerShell

方法1 使用环境变量

在不修改AspNetCoreUrl任何源代码的情况下(即创建项目时的程序默认状态)生成程序,定位到生成的根目录下,打开命令行终端


# 环境变量仅在当前命令行窗口生效
$Env:ASPNETCORE_URLS = "http://localhost:7000;https://localhost:7010"
# 或者使用DOTNET_URLS环境变量同样可生效
$Env:DOTNET_URLS = "http://localhost:8000;https://localhost:8010"
# 运行AspNetCoreUrl程序
dotnet AspNetCoreUrl.dll

如果使用Windows命令行(即cmd命令行),使用下面的方式设置


# 环境变量仅在当前命令行窗口生效
set ASPNETCORE_URLS=http://localhost:7000;https://localhost:7010
# 将ASPNETCORE_URLS变量保存到用户环境变量中
setx ASPNETCORE_URLS "http://localhost:7000;https://localhost:7010"
# 加/m参数,将ASPNETCORE_URLS变量保存到系统环境变量中
setx ASPNETCORE_URLS "http://localhost:7000;https://localhost:7010" /m
# 运行AspNetCoreUrl程序
dotnet AspNetCoreUrl.dll

注意:使用setx设置环境变量后,需要打开新的Windows命令行窗口才会使用环境变量生效

在Linux系统中使用以下命令设置环境变量


# 环境变量仅在当前终端生效,关闭终端后需要重新设置
export ASPNETCORE_URLS=http://localhost:7000;https://localhost:7010

方法2 使用命令行参数

在生成程序的根目录下,使用dotnet --urls命令,并带上urls参数


dotnet AspNetCoreUrl.dll --urls http://localhost:7001;https://localhost:7011

方法3 使用配置文件

在生成程序的根目录下,打开appsettings.json文件,添加url配置项,然后双击AspNetCoreUrl.exe运行


{
    "urls":"http://localhost:7002;http://localhost:7012"
}

运行结果如下图

方法4 使用UseUrls

这种方法需要修改源代码,打开Program.cs文件,修改CreateHostBuilder方法内容,主要是添加UseUrls扩展方法然后生成程序。


public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
            // 使用UseUrls设置监听的端口和协议
            webBuilder.UseUrls("http://localhost:7003", "https://localhost:7013");
        });

注意:运行前需要将appsettings.json文件恢复到默认状态,即没有配置urls的状态,否则配置文件中设置会覆蓋代码中的方法。

方法5 使用Kestrel

这种方法并不在官方文档中,因为该方法仅限于使用Kestrel的时候生效,在创建ASP.NET Core应用程序时,默认使用Kestrel来托管应用,使用这种方法也有相应的应用场景,这里简单介绍下该方法的使用

打开Program.cs文件,修改CreateHostBuilder方法内容


public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
            // 配置Kestrel服务
            webBuilder.UseKestrel(kestrelServerOptions =>
            {
                kestrelServerOptions.ListenLocalhost(7004);
                kestrelServerOptions.ListenLocalhost(7014, listenOptions => listenOptions.UseHttps());
            });
        });

优先级

前面介绍的5种方法都在独立运行,如果将这5种方法同时用上,会有什么样的效果呢,下面来测试下,为了便于测试,每种方法都使用了不同的端口进行区分,下面显示了使用全部方法的运行结果:

可以看到,生效的是使用Kestrel方法,现在将Kestrel这种注释掉,运行结果如下:

可以看到此时生效的是使用命令行参数方法,如果不使用命令行参数方法,运行结果如下:

生效的是配置文件中的设置,现在删除配置文件中urls的配置,运行结果如下:

生效的是UseUrls扩展方法,现在注释掉UseUrls方法代码,运行结果如下:

生效的是环境变量,如果不设置环境变量,则使用默认值,即http://localhost:5000/https://localhost:5001/

总结

本文介绍了ASP.NET Core几种常用的设置URLs的方法,大家可以根据项目实际情况选择其中一种或几种,如果同时使用几种URLs设置方法,则需要留意配置的优先级问题,经过测试得出
Kestrel > 命令行 > 配置文件 > UseUrls > 环境变量 > 默认值

如果你想自己试一试,代码地址:
gitee:https://gitee.com/gyhgis/AspNetCoreUrl
github:https://github.com/gyhgis/AspNetCoreUrl

到此这篇关于ASP.NET Core设置URLs的五种方法的文章就介绍到这了,更多相关ASP.NET Core设置URLs 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ASP.NET Core设置URLs的五种方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ASP.Net Core读取配置文件的三种方法小结

ASP.NetCore中读取配置文件有三种方法:1.使用IConfiguration:通过依赖注入获取IConfiguration对象,然后使用GetSection和GetValue方法获取配置值。2.使用OptionsPattern:创建POCO对象表示配置,使用OptionsBuilder绑定,通过DI注入获取配置对象。3.使用IConfigurationRoot:通过DI注入获取IConfigurationRoot对象,使用GetChildSection和GetValue方法获取配置值。
ASP.Net Core读取配置文件的三种方法小结
2024-04-02

ASP.NET Core设置URLs的方法汇总(完美解决.NET 6项目局域网IP地址远程无法访问的问题)

本文汇总了ASP.NETCore中设置URL的方法,包括绝对URL、相对URL、路由、TagHelpers、UrlHelper和URL生成器。此外,还介绍了如何在.NET6中解决局域网IP地址远程无法访问的问题,方法包括禁用IIS集成、绑定到IPv4地址或使用UseUrls方法。通过了解这些方法,开发者可以根据应用程序的需要定制URL,确保应用程序在不同网络环境中都可访问。
ASP.NET Core设置URLs的方法汇总(完美解决.NET 6项目局域网IP地址远程无法访问的问题)
2024-04-02

asp.net core 修改默认端口的几种方法

一般情况下,aspnetcore发布后的默认端口是5000,这个大家都知道,而且默认骨架代码中没有看到任何让你输入的ip地址和端口号,但作为程序员的我们,不希望 被框架所管制,那如何实现默认端口的修改呢? 骨架代码:public class
2022-06-07

关于思科路由器的五种设置方式

  思科(Cisco)路由器是一个集成多业务路由器,福利综合服务网络路由器,以及获得回报的网络路由器,具备用于连接不同网络设备的综合服务的多种功能。今天小编为大家分享的教程是:关于思科路由器的五种设置方式。  大家都应该知道一点,那就是Cisco路由器比较受大众的欢迎,那么我们应该怎样进行设置这一种路由器呢?其实就一般
关于思科路由器的五种设置方式
2024-04-18

android 设置全屏的两种方法

现在android的每一个项目都会需要设置为全屏,现在介绍两种设置为全屏的方式。 一、在配置文件中设置android:theme=”@android:style/Theme.Light.NoTitleBar.Fullscreen” 如:二、
2022-06-06

css设置垂直居中的几种方法

这篇文章主要介绍了css设置垂直居中的几种方法,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。1、使用line-height属性让文字垂直居中;2、使用CSS3 flex布局让文字垂直居中;3、使用绝对定位和transfo
2023-06-14

Android设置控件阴影的三种方法

本文实例为大家分享了Android设置控件阴影的方法,供大家参考,具体内容如下第一种方式:elevationView的大小位置都是通过x,y确定的,而现在有了z轴的概念,而这个z值就是View的高度(elevation),而高度决定了阴影(
2023-05-30

Windows中redis设置密码的两种方法

目录1. 命令行设置密码。2. 配置文件设置密码总结设置密码有两种方式。1. 命令行设置密码。运行cmd切换到Redis根目录,先启动服务端>redis-server.exe另开一个cmd切换到redis根目录,启动客户端>red
2023-04-12

两种常用的SSH Git代理设置方法

SSH Git 代理设置在使用 Git 时,如果遇到与被墙的 Git 服务器通讯问题,我们可以通过设置代理的方式解决。本文将提供两种常用的 SSH Git 代理设置方法,帮助读者顺利地使用 Git。第一种方法:设置 SSH 代理在使用 Gi
2023-10-22

ASP.NET设置404页面返回302HTTP状态码的解决方法

访问网站时错误页面可正常显示,但HTTP状态码却是302,对SEO很不友好,按下列步骤修改使错误页面返回正确的利于SEO的404状态码,感兴趣的朋友可以了解下
2022-11-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录