文档章节

ASP.NET Core开发-如何配置Kestrel 网址Urls

丁川
 丁川
发布于 2016/10/02 01:02
字数 714
阅读 44
收藏 2

ASP.NET Core中如何配置Kestrel Urls呢,大家可能都知道使用UseUrls() 方法来配置。

今天给介绍全面的ASP.NET Core 配置 Urls,使用多种方式配置Urls。

让你了解ASP.NET Core Kestrel 的地址设置。

下面我们就来了解如何配置。我将介绍4种方式来配置Urls。

 

首先我们新建一个ASP.NET Core 空应用程序。

UseUrls

大家最熟悉的一种也就是使用UseUrls 。下面我们就来实际使用。

UseUrls 方法可以使用多个地址,也可以使用一个地址。

单个网址

UseUrls("http://localhost:5001")

多个网址

UseUrls("http://localhost:5001", "http://localhost:5002", "http://*:5003")//多个地址 *代表绑定所有本机地址 可以局域网访问,拥有外网ip 就可以外网访问

所有的代码都在 Program.cs Main 方法里

public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseUrls("http://localhost:5001", "http://localhost:5002", "http://*:5003")
                .UseStartup<Startup>()
                .Build();

            host.Run();
        }

使用Kestrel运行程序,http://localhost:5001 http://localhost:5002 http://localhost:5003 均可访问。

配置文件

下面使用配置文件来设置网址。

首先在项目中添加一个ASP.NET 配置文件hosting.json,在配置文件中加入server.urls 节点。

{
  "server.urls": "http://localhost:5001;http://localhost:5002;http://*:5003"
}

这里首先需要添加两个引用

"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0"

然后Program.cs

public static void Main(string[] args)
        {
            var config = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("hosting.json", optional: true)
                .Build();
            var host = new WebHostBuilder()
                .UseConfiguration(config)
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .Build();

            host.Run();
        }

使用Kestrel运行程序,http://localhost:5001 http://localhost:5002 http://localhost:5003 均可访问。

命令行参数

下面使用命令行参数来设置网址。

首先我们需要添加

"Microsoft.Extensions.Configuration.CommandLine": "1.0.0"

然后Program.cs

public static void Main(string[] args)
        {
            var config = new ConfigurationBuilder()
                .AddCommandLine(args)
                .Build();

            var host = new WebHostBuilder()
                .UseConfiguration(config)
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .Build();

            host.Run();
        }

我们到项目目录使用命令

dotnet run --server.urls "http://localhost:5001;http://localhost:5002;http://*:5003"

然后访问 http://localhost:5001 http://localhost:5002 http://localhost:5003 均可访问。

环境变量

这里我们可以通过环境变量来设置网址。

我们可以设置系统的环境变量,也可以在VS里设置只用于调试。

首先更改Program.cs 

public static void Main(string[] args)
        {
            //环境变量
            var config = new ConfigurationBuilder()
                .AddEnvironmentVariables("LineZero_")
                .Build();

            var host = new WebHostBuilder()
                .UseConfiguration(config)
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration()
                .UseStartup<Startup>()
                .Build();

            host.Run();
        }

在项目右键属性-》调试 ,这里我们添加变量。

添加一个名称为: LineZero_SERVER.URLS 值为:http://localhost:5001;http://localhost:5002;http://*:5003

然后启动程序,http://localhost:5001 http://localhost:5002 http://localhost:5003 均可访问。

这里我是直接在VS 里添加环境变量,只作用调试环境,如果大家希望系统级别可以使用,就在系统下设置环境变量。

顺便讲解一下 ASPNETCORE_ENVIRONMENT 这里就是环境变量,为何我们在VS 调试的时候看到的 Development,就是这个环境变量控制的。

本文转载自:http://www.cnblogs.com/linezero/p/aspnetcorekestrelurls.html

共有 人打赏支持
丁川
粉丝 4
博文 52
码字总数 4829
作品 0
南宁
程序员
私信 提问
asp.net core自定义端口

asp.net Core 自定义端口 官方文档 aspnet内库源码: https://github.com/aspnet dotnet系统内库源码:https://github.com/dotnet asp.net core 官方文档 自定义端口访问 webHost增加UseUrls...

wzh0717
08/23
0
0
泥水佬/FastHttpApi

FastHttpApi 简介 是基于dotcore实现的一个高度精简化和高吞吐的HTTP API服务组件,它并没有完全实现HTTP SERVER的所有功能,而是只实现了在APP和WEB中提供数据服务最常用两个指令GET/SET,满...

泥水佬
09/14
0
0
asp.net core 2.1 部署IIS(win10)

asp.net core 2.1 部署IIS(win10) 概述 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求...

wzh0717
08/22
0
0
为什么你需要将代码迁移到ASP.NET Core 2.0?

随着 .NET Core 2.0 的发布,.NET 开源跨平台迎来了新的时代。开发者们可以选择使用命令行、个人喜好的文本编辑器、Visual Studio 2017 15.3 和 Visual Studio Code 来开发自己的 .NET Core ...

powertoolsteam
2017/09/26
0
0
ASP.NET Core 响应压缩中间件

使用及对比 在 中添加服务并使用即可,主代码如下: 未使用响应压缩中间件 新建一个 项目 运行并访问 响应头信息如下: 使用响应压缩中间件 新建一个 项目 添加并配置 响应压缩中间件 运行并访问...

taadis
09/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

生物智能与AI——关乎创造、关乎理解(上)

摘要: 原来人工智能跟人类智能有那么深的联系! 几百万年前,第一次人类智能的星火出现在非洲大陆,并且持续发展,最终在大约10万年前在智人的大脑中达到顶峰。作为现代人类,我们只能想象我...

阿里云官方博客
13分钟前
0
0
MiniUi系列 详情逻辑

row是获取的行的数据,通过id去查看对应id的详情,所有数据是在datagrid加载完后的,比如有5条,我可以选中某一条,我也可以把获取到的数据直接传到详情页面,仅就是追加row.xx,row.xx,这样就...

architect刘源源
14分钟前
0
0
android adb实用命令小结

adb的全称为Android Debug Bridge.是android司机经常用到的工具.但是问题是那么多命令写代码已经够费劲了,过段时间在次使用时压根记不住呀.本次的大餐就是为此开篇的.这一次我们不记命令.要用...

天王盖地虎626
18分钟前
0
0
vagrant 虚拟机 磁盘100%解决

在日常开发中,我使用vagrant+VirtualBox搭建开发环境 docker+docker-compose搭建了php+nginx+redis+mysql+ELK(Elasticsearch+Kibana+Logstash+php)+phpredisadmin 但是搭建了环境之后发现磁...

DamienChen
23分钟前
0
0
详解如何用爬虫批量抓取百度搜索多个关键字数据

本文介绍如何使用软件的流程图模式,免费采集百度搜索多个关键字的信息数据。 软件下载网址:www.houyicaiji.com 采集结果预览: 下面我们来详细介绍一下如何使用流程图模式,采集在百度输入...

技术阿飞
25分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部