基于 .NET 6 的ASP.NET Core启动地址配置方法及优先级顺序

目录
  • 前言:
  • 一、设置方法
    • ​1. applicationUrl 属性​
    • ​2.环境变量​
    • ​3.命令行参数​
    • ​4. UseUrls 方法​
      • .NET 5 版本
      • .NET 6 版本
    • ​5. UseKestrel 方法​
    • ​6. WebApplication.Urls.Add 方法​
    • ​7. appsettings.json 文件​
  • 二、优先级
  • 三、结论

前言:

上次,我们讨论了如何通过配置或代码方式修改启动地址:《​​ASP.NET Core启动地址配置方法及优先级顺序​​》。不过是基于 .NET 5 版本的。

由于 .NET 6 使用了最小 WEB API, 配置方式已经部分发生了变化。

一、设置方法

​1. applicationUrl 属性​

launchSettings.json 文件中的 applicationUrl 属性,但是仅在本地开发计算机上使用:

"profiles": {
    "WebApplication1": {
        ...
        "applicationUrl": "http://localhost:5100",
    }
}

​2.环境变量​

环境变量ASPNETCORE_URLS,有多个设置位置,下面演示的是使用 launchSettings.json 文件:

"profiles": {
    "WebApplication1": {
        ...
        "environmentVariables": {
            "ASPNETCORE_URLS": "http://localhost:5200"
        }
    }
}

​3.命令行参数​

命令行参数 --urls,有多个设置位置,下面演示的是使用 launchSettings.json 文件:

"profiles": {
    "WebApplication1": {
        ...
        "commandLineArgs": "--urls http://localhost:5300",
    }
}

​4. UseUrls 方法​

.NET 5 版本

修改 ConfigureWebHostDefaults 方法:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
            webBuilder.UseUrls("http://localhost:5400");
        });

.NET 6 版本

对应的方法为 ​WebApplicationBuilder​.WebHost.UseUrls:

var builder = WebApplication.CreateBuilder(args);

builder.WebHost.UseUrls("http://localhost:5400");

​​但是,运行后不起作用。​​

​​结果发现这是 .NET 6 的 BUG​​ (Builder.WebHost.UseUrls does not seem to override default url),并将在 6.0.3 中修复:https://github.com/dotnet/aspnetcore/issues/38185

​5. UseKestrel 方法​

.NET 5 版本:

修改ConfigureWebHostDefaults方法:

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder.UseStartup<Startup>();
            webBuilder.UseKestrel(options=> options.ListenLocalhost(5500, opts => opts.Protocols = HttpProtocols.Http1));
        });

.NET 6 版本:

对应的方法为 ​WebApplicationBuilder​.WebHost.ConfigureKestrel:

var builder = WebApplication.CreateBuilder(args);
builder.WebHost.ConfigureKestrel(options => options.ListenLocalhost(5500, opts => opts.Protocols = HttpProtocols.Http1));

​6. WebApplication.Urls.Add 方法​

.NET 6 版本

这是 .NET 6 下增加的新方法:

var app = builder.Build();
app.Urls.Add("http://localhost:5600");

​7. appsettings.json 文件​

可以在 appsettings.json 文件中设置 Kestrel 端口:

{
  "Kestrel": {
    "Endpoints": {
      "Https": {
        "Url": "https://*:5701"
      },
      "Http": {
        "Url": "http://*:5700"
      }
    }
  }
}

二、优先级

通过将上述设置方式进行组合,发现优先级顺序如下:

  • WebApplicationBuilder.WebHost.ConfigureKestrel 方法 / appsettings.json 文件 (​2者可同时起作用)
  • WebApplication.Urls.Add 方法
  • 命令行参数 --urls
  • 环境变量 ASPNETCORE_URLS
  • applicationUrl 属性
  • 默认值

三、结论

如果在同一台机器上运行多个 ASP.NET Core 实例,使用默认值肯定不合适。

由于​WebApplicationBuilder​.WebHost.ConfigureKestrel/WebApplication.Urls.Add 方法不能被覆盖,而环境变量 ASPNETCORE_URLS 容易造成全局影响。

​​建议:始终使用appsettings.json 文件配置启动地址。

到此这篇关于基于 .NET 6 的ASP.NET Core启动地址配置方法及优先级顺序的文章就介绍到这了,更多相关ASP.NET Core启动地址配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • ASP.NET的Core AD域登录过程示例

    目录 来个ABC: 新建一个ASP.NET Core项目 建立一个LDAP操作的工具类 在applicationSettings.json中添加基本的域配置 Startup.cs中修改 AccountController中添加登录和注销的Action 在选择AD登录时,其实可以直接选择 Windows 授权,不过因为有些网站需要的是LDAP获取信息进行授权,而非直接依赖Web Server自带的Windows 授权功能. 当然如果使用的是Azure AD/企业账号登录时,直接在ASP.NET C

  • ASP.NET Core在WebApi项目中使用Cookie

    目录 一.Cookie的作用 二.在ASP.NET Core中使用Cookie 1.在控制器中直接使用Cookie 1.1.设置Cookie 1.2.获取Cookie 1.3.删除Cookie信息 2.封装Cookie 一.Cookie的作用 Cookie通常用来存储有关用户信息的一条数据,可以用来标识登录用户,Cookie存储在客户端的浏览器上.在大多数浏览器中,每个Cookie都存储为一个小文件.Cookie表示为键/值对的形式,可以利用键来读取.写入或删除Cookie. 在ASP.NET

  • asp.net core 获取 MacAddress 地址方法示例

    本文告诉大家如何在 dotnet core 获取 Mac 地址 因为在 dotnetcore 是没有直接和硬件相关的,所以无法通过 WMI 的方法获取当前设备的 Mac 地址 但是在 dotnet core 可以使用下面的代码拿到本机所有的网卡地址,包括物理网卡和虚拟网卡 IPGlobalProperties computerProperties = IPGlobalProperties.GetIPGlobalProperties(); NetworkInterface[] nics = Net

  • ASP.Net Core中的日志与分布式链路追踪

    目录 .NET Core 中的日志 控制台输出 非侵入式日志 Microsoft.Extensions.Logging ILoggerFactory ILoggerProvider ILogger Logging Providers 怎么使用 日志等级 Trace.Debug 链路跟踪 OpenTracing 上下文和跟踪功能 跟踪单个功能 将多个跨度合并到一条轨迹中 传播过程中的上下文 分布式链路跟踪 在不同进程中跟踪 在 ASP.NET Core 中跟踪 OpenTracing API 和

  • ASP.Net Core中的内存和GC机制

    托管代码 在 .NET 中, CLR(Common Language Runtime) 负责提取托管代码并编译成机器语言,然后执行它.在此过程中,CLR 提供自动内存管理.安全边界.类型安全等服务,保证了代码安全. 托管代码指在其执行过程中由 CLR(Common Language Runtime) 管理的代码,托管代码是可在 .NET 上运行得一种高级语言(C#.F#等),编写的托管代码被编译后会被生成 中间语言(IL). CLR 有 .NET Core/.NET5+.Mono..NET Fr

  • ASP.NET MVC Webuploader实现上传功能

    本文实例为大家分享了Android九宫格图片展示的具体代码,供大家参考,具体内容如下 1.简介:WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用原来的FLASH运行时,兼容IE6+,iOS 6+, android 4+.两套运行时,同样的调用方式,可供用户任意选用. 2.引入资源:使用Web Uploader文件上传需要引入三种资源:JS

  • 基于 .NET 6 的ASP.NET Core启动地址配置方法及优先级顺序

    目录 前言: 一.设置方法 ​1.applicationUrl属性​ ​2.环境变量​ ​3.命令行参数​ ​4.UseUrls方法​ .NET5版本 .NET6版本 ​5.UseKestrel方法​ ​6.WebApplication.Urls.Add方法​ ​7.appsettings.json文件​ 二.优先级 三.结论 前言: 上次,我们讨论了如何通过配置或代码方式修改启动地址:<​ ​ASP.NET Core启动地址配置方法及优先级顺序​​>.不过是基于 .NET 5 版本的. 由于

  • 基于 .NET 6 的ASP.NET Core启动地址配置方法及优先级顺序

    目录 前言: 一.设置方法 ​1. applicationUrl 属性​ ​2.环境变量​ ​3.命令行参数​ ​4. UseUrls 方法​ .NET 5 版本 .NET 6 版本 ​5. UseKestrel 方法​ ​6. WebApplication.Urls.Add 方法​ ​7. appsettings.json 文件​ 二.优先级 三.结论 前言: 上次,我们讨论了如何通过配置或代码方式修改启动地址:<​​ASP.NET Core启动地址配置方法及优先级顺序​​>.不过是基于 .

  • ASP.NET Core启动地址配置方法及优先级顺序

    目录 一.设置方法 1.applicationUrl属性 2.环境变量 3.命令行参数 4.UseUrls方法 5.UseKestrel方法 二.优先级 结论: 默认情况下,ASP.NET Core使用下列2个启动地址: http://localhost:5000https://localhost:5001 同时,我们也可以通过配置或代码方式修改启动地址. 那么,这几种修改方式都是什么?谁最后起作用呢? 一.设置方法 1.applicationUrl属性 launchSettings.json文

  • 理解ASP.NET Core 启动类(Startup)

    目录 准备工作:一份ASP.NET Core Web API应用程序 Startup类 Startup构造函数 ConfigureServices Configure 省略Startup类 IStartupFilter IHostingStartup HostingStartup 程序集 HostingStartup 特性 激活HostingStarup程序集 1.使用环境变量(推荐) 2.在程序中配置 多环境配置 环境配置方式 基于环境的 Startup 1.将IWebHostEnvironm

  • ASP.NET Core环境变量配置和启动设置讲解

    ASPNETCORE_ENVIRONMENT ASP.NET Core控制环境切换最核心的东西是“ASPNETCORE_ENVIRONMENT”环境变量,它直接控制当前应用程序运行的环境类型.您可以通过在项目上右键菜单选择“属性”选项,然后切换到“调试”标签来修改此环境变量. 此环境变量框架默认提供了三个值,当然您也可以定义其它的值: Development(开发) Staging(预演) Production(生产) 我们在Startup.cs文件中,可以使用相应的方法来控制应用程序的行为.以

  • 在IIS上部署ASP.NET Core Web API的方法步骤

    对于本文,我想与您分享有关如何在IIS上部署ASP.NET Core Web API的指南.我将指导您安装Visual Studio 2019,.NET Core Runtime 3.0.我还确保我逐步引导您在服务器(Web IIS)中启用它,使用no受管代码选项创建新的应用程序池,创建ASP.NET Core Web API项目以及发布ASP.NET Core Web API. 了解并遵循正确的步骤来准备开发和部署环境后,在IIS上部署ASP.NET Core Web API就是一件容易的事.

  • ASP.NET Core Authentication认证实现方法

    追本溯源,从使用开始 首先看一下我们通常是如何使用微软自带的认证,一般在Startup里面配置我们所需的依赖认证服务,这里通过JWT的认证方式讲解 public void ConfigureServices(IServiceCollection services) { services.AddAuthentication(authOpt => { authOpt.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;

  • ASP.NET Core中的配置详解

    ASP.NET Core 提供了一个灵活可扩展,基于键值的配置系统. 但是配置系统独立于ASP.NET Core是Microsoft.Extensions 类库的部分. 它可以用于任何类型的应用程序 1.以键-值对的形式读取配置 appsettings.json 文件: { "Position": { "Title": "编辑器", "Name": "Joe Smith" }, "MyKey&qu

  • ASP.NET Core基础之Main方法讲解

    为什么ASP.NET Core采用Main方法? 需要记住的最重要的一点是,ASP.NET Core Web 应用程序最初作为控制台应用程序启动,Main() 方法是应用程序的入口点.因此,当我们执行ASP.NET Core Web应用程序时,首先它寻找 Main() 方法,这是执行开始的方法.然后,Main()方法将ASP.NET配置并启动它.此时,应用程序将成为ASP.NET Core Web应用程序. 如果进一步查看 Main() 方法的正文,则会发现它通过将命令行参数 args 作为参数

  • ASP.NET Core托管模型CreateDefaultBuilder()方法

    让我们讨论一下 CreateDefaultBuilder() 方法究竟对配置和设置 Web 服务器的作用.从托管的角度来看,一个ASP.NET Web 应用程序可以通过两种方式托管,即进程托管(InProcess)或进程外托管(OutOfProcess). 注:当我们使用任何模板创建新 ASP.NET Core Web 应用程序时,默认情况下,使用InProcess 托管创建项目文件,该托管用于在 IIS 或 IIS Express 方案中托管应用程序. 如何验证是否在进程内? 为了验证上面的观

随机推荐