在本篇文章中,我来讲一讲如何利用WebHost来加载配置文件和设置启动的Url

在前面的文章中讲过,ASP.Net Core应用程序会自动加载appsettings.json中的配置文件,那么如果配置文件不是写在appsettings.json中的如何来加载呢?

本文介绍利用WebHost从json文件加载和从命令行加载两种方式。

首先 新建一个ASP.NET Core空的项目,如图:

新建后,因为首先添加一个名为json的json文件,文件内容如下:

  1. {
  2. "connectionString": {
  3. "defaultConnectionString": "server=127.0.0.1;database=123;uid=sa;pwd=123"
  4. }
  5. }

然后,修改Program.cs文件中的代码

  1. public static IWebHost BuildWebHost(string[] args) =>
  2. Microsoft.AspNetCore.WebHost.CreateDefaultBuilder(args)
  3. .ConfigureAppConfiguration(config =>
  4. {
  5. config.AddJsonFile("json.json"); //从json.json中读取配置文件
  6. config.AddCommandLine(args); //从命令行中读取配置文件
  7. })
  8.  
  9. .UseStartup<Startup>()
  10. .Build();

读取到了配置文件,那么我们如何使用呢?

让我们回到startup.cs文件中,修改如下代码

  1. public void Configure(IApplicationBuilder app, IHostingEnvironment env,IConfiguration configuration)
  2. {
  3. if (env.IsDevelopment())
  4. {
  5. app.UseDeveloperExceptionPage();
  6. }
  7.  
  8. app.Run(async (context) =>
  9. {
  10. await context.Response.WriteAsync($"connectionString=\"{configuration["connectionString:defaultConnectionString"]}\""); //显示json文件中的配置文件
  11. await context.Response.WriteAsync($"name=\"{configuration["name"]}\""); //显示命令行中的配置文件
  12. await context.Response.WriteAsync("Hello World!");
  13. });
  14. }

同时  我们需要引入IConfiguration的命名空间

using Microsoft.Extensions.Configuration;

我们一开始已经引入了json文件作为数据源  那么我们现在要写入命令行的数据源   选中该项目  右键属性

在调试下  把配置文件改成本项目名  是该程序为自托管的程序,然后再应用程序参数中写入  参数

name=123

因为我们是调试中配置的命令行参数,所以我们需要再vs 上  把托管程序改成自己   然后开始调试

页面中的结果如下:

数据成功读取。

下面我们介绍利用webHost修改启动的url  其实很简单,只需要再Pragram.ca中修改以下代码:

  1. public static IWebHost BuildWebHost(string[] args) =>
  2. Microsoft.AspNetCore.WebHost.CreateDefaultBuilder(args)
  3. .ConfigureAppConfiguration(config =>
  4. {
  5. config.AddJsonFile("json.json");
  6. config.AddCommandLine(args);
  7. })
  8. .UseUrls("http://locohost:8080")
  9. .UseStartup<Startup>()
  10. .Build();

那么该网页就会再8080端口开始侦听了  ,要注意的是,修改之后,程序启动后不会自动调用默认浏览器打开该网页  需要我们再浏览器中输入该地址打开。

该项目完整的github地址:https://github.com/liuzhenyulive/WebHost

有任何疑问可以再文章下方给我留言

Asp.Net Core轻松入门之WebHost的配置的更多相关文章

  1. asp.net core轻松入门之MVC中Options读取配置文件

    接上一篇中讲到利用Bind方法读取配置文件 ASP.NET Core轻松入门Bind读取配置文件到C#实例 那么在这篇文章中,我将在上一篇文章的基础上,利用Options方法读取配置文件 首先注册MV ...

  2. ASP.NET Core轻松入门之Configure中IHostingEnvironment和IApplicationLifetime的使用

    在StratUp.cs的Configure方法中,除了 常用的参数除了IApplicationBuilder和在我上一篇文章中提到的Iconfiguration点击打开链接 外  还有 IHostin ...

  3. ASP.NET Core轻松入门Bind读取配置文件到C#实例

    首先新建一个ASP.NET Core空项目,命名为BindReader 然后 向项目中添加一个名为appsettings.json的json文件,为什么叫appsettings呢?  打开Progra ...

  4. ASP.NET Core轻松入门之Middleware管道模型

    Middleware指的是微软的的asp.net core的管道模型.其原理可以用微软官方的下图展示: 原理如上图,随着Request的发起,HttpContext会经历多个管道处理(图中的箭头游走方 ...

  5. 菜鸟入门【ASP.NET Core】7:WebHost的配置、 IHostEnvironment和 IApplicationLifetime介绍、dotnet watch run 和attach到进程调试

    WebHost的配置 我们用vs2017新建一个空网站HelloCore 可以使用ConfigureAppConfiguration对配置进行更改,比如说添加jsonfile和commandline配 ...

  6. Asp.Net Core 轻松学-多线程之Task(补充)

    前言     在上一章 Asp.Net Core 轻松学-多线程之Task快速上手 文章中,介绍了使用Task的各种常用场景,但是感觉有部分内容还没有完善,在这里补充一下. 1. 任务的等待 在使用 ...

  7. WebAPI调用笔记 ASP.NET CORE 学习之自定义异常处理 MySQL数据库查询优化建议 .NET操作XML文件之泛型集合的序列化与反序列化 Asp.Net Core 轻松学-多线程之Task快速上手 Asp.Net Core 轻松学-多线程之Task(补充)

    WebAPI调用笔记   前言 即时通信项目中初次调用OA接口遇到了一些问题,因为本人从业后几乎一直做CS端项目,一个简单的WebAPI调用居然浪费了不少时间,特此记录. 接口描述 首先说明一下,基于 ...

  8. Asp.Net Core 轻松学系列-1阅读指引目录

    https://www.cnblogs.com/viter/p/10474091.html 目录 前言 1. 从安装到配置 2. 业务实现 3. 日志 4. 测试 5. 缓存使用 6.网络和通讯 7. ...

  9. 【笔记目录2】【jessetalk 】ASP.NET Core快速入门_学习笔记汇总

    当前标签: ASP.NET Core快速入门 共2页: 上一页 1 2  任务27:Middleware管道介绍 GASA 2019-02-12 20:07 阅读:15 评论:0 任务26:dotne ...

随机推荐

  1. 夏令营讲课内容整理 Day 6 Part 1.

    Day6讲了三个大部分的内容. 1.STL 2.初等数论 3.倍增   Part1主要与STL有关. 1.概述 STL的英文全名叫Standard Template Library,翻译成中文就叫标准 ...

  2. 一个Windows下线程池的实现(C++)

    前言 本文配套代码:https://github.com/TTGuoying/ThreadPool 先看看几个概念: 线程:进程中负责执行的执行单元.一个进程中至少有一个线程. 多线程:一个进程中有多 ...

  3. 《CSS核心技术详解》

    前言 看似简单的CSS,却暗藏玄机,那是我们摸爬滚打好长时间后悟出的真理. 在很长的一段时间里,我并没有重视CSS,觉得CSS很简单,无非就是一些属性:后来才发现自己小看了CSS,对CSS的了解实在是 ...

  4. LeetCode - 307. Range Sum Query - Mutable

    Given an integer array nums, find the sum of the elements between indices i and j (i ≤ j), inclusive ...

  5. a元素的两个重要功能和表格布局

    ⦁ 发送邮件:<a href="mailto:231455557@qq.com">联系我们</a> ⦁ 锚点两个重要应用:查看目录    提供菜单功能回到顶 ...

  6. 本地创建yum源并安装lnmp

    注意:安装系统时,文件类型要未xfs类型,root要分配最多的空间 1.挂载安装光盘mount -t iso9660 -o loop CentOS-7-x86_64-DVD-1511.iso /mnt ...

  7. 使用CentOS Linux Bridge搭建Vxlan环境

    一. 基础环境使用VmWare虚拟两台Linux机器.CentOS 7,Linux内核如下:4.5.3-1.el7.elrepo.x86_64如果内核版本太低,是不支持VxLan的.可以使用一下命令进 ...

  8. VirtualDOM与diff(Vue实现)

    写在前面 因为对Vue.js很感兴趣,而且平时工作的技术栈也是Vue.js,这几个月花了些时间研究学习了一下Vue.js源码,并做了总结与输出.文章的原地址:https://github.com/an ...

  9. elasticsearch2.3.3安装

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 作者原来搭建的环境是0.95版本 现在升级到2.3.3版本, ...

  10. CodeForces 820C

    题意略. 这道题目的出题者竟然被hack了!? 我的思路是:在游戏开始时,为了尽量少地用字母,我应该尽量选取计算机输出的前a个字母中已经使用过的字母.但是为了使电脑也尽量少用字母,我添加的这b个字母应 ...