在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前言在使用ASP.NET Core 3.1开发时,需要配置服务器监听的端口和协议,官方帮助文档进行简单说明,文档中提到了4种指定URL的方法
为便于讲清楚URLs设置方法,创建名为
URL格式主要有三种URL格式表达方式,可以查看官方文档(https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-3.1) 格式1: 格式2: 格式3: 前提条件在开始测试几种URLs设置方法前,需要先生成 如图,我这里的程序根目录为 方法1 使用环境变量在不修改 # 环境变量仅在当前命令行窗口生效 $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 AspNetCoreUrl.dll --urls http://localhost:7001;https://localhost:7011 方法3 使用配置文件在生成程序的根目录下,打开 { "urls":"http://localhost:7002;http://localhost:7012" } 运行结果如下图 方法4 使用UseUrls这种方法需要修改源代码,打开 public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); // 使用UseUrls设置监听的端口和协议 webBuilder.UseUrls("http://localhost:7003", "https://localhost:7013"); }); 注意:运行前需要将 方法5 使用Kestrel这种方法并不在官方文档中,因为该方法仅限于使用Kestrel的时候生效,在创建ASP.NET Core应用程序时,默认使用Kestrel来托管应用,使用这种方法也有相应的应用场景,这里简单介绍下该方法的使用 打开 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方法代码,运行结果如下: 生效的是环境变量,如果不设置环境变量,则使用默认值,即 总结本文介绍了ASP.NET Core几种常用的设置URLs的方法,大家可以根据项目实际情况选择其中一种或几种,如果同时使用几种URLs设置方法,则需要留意配置的优先级问题,经过测试得出 如果你想自己试一试,代码地址: 到此这篇关于ASP.NET Core设置URLs的五种方法的文章就介绍到这了,更多相关ASP.NET Core设置URLs 内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论