AspNet Core Web 应用程序的启动(有关 Program.cs类/ Startup.cs类 ) 当项目中干掉 Startup.cs 类如何设置启动 配置等等
.有关怎么创建Core MVC/API 这里就不说了,前段时间的博客有说过:
1. 项目生成后会有如图所示两个类 Program类Startup类
2. Startup类 初始内容
public void ConfigureServices(IServiceCollection services) { //运行时调用此方法。使用此方法向容器添加服务。 } public void Configure(IApplicationBuilder app, IHostingEnvironment env) { //运行时调用此方法。使用此方法配置HTTP请求管道 }
2.1 ConfigureServices 方法 使用 添加 MVC服务/EF/添加自定义服务
public void ConfigureServices(IServiceCollection services) { //注入MVC的服务 services.AddMvc(); // 添加 EF 服务 可以添加多个 使用多个EF 多个库 //services.AddEntityFrameworkSqlServer().AddDbContext<EFDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("SqlServer"))); // services.AddEntityFrameworkSqlServer().AddDbContext<EFLogDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("SqlServerLog"))); services.AddMvc(); // 添加自定义服务 :详见 IServiceCollection }
2.2 Configure 方法的使用 MVC路由/静态文件/错误日志等
有关 IHostingEnvironment (https://msdn.microsoft.com/zh-cn/library/system.web.hosting.hostingenvironment.aspx)
//重新定义 IHostingEnvironment public IHostingEnvironment HostingEnvironment { get; } //运行时调用此方法。使用此方法配置HTTP请求管道 public void Configure(IApplicationBuilder app) { //判断当前的运行环境 是否是 Microsoft 如果是则返回true // 如果要判断其他的运行环境比如Linux 可以用 env.IsEnvironment("environmentname") 要验证的环境名称 忽略大小写 if (HostingEnvironment.IsDevelopment()) { //抓取错误信息 把错误信息生成 HTML //关于这个等写到关于错误处理的时候详细说明**************************** app.UseDeveloperExceptionPage(); } else { //自定义错误信息帮助页 app.UseExceptionHandler("/Home/Error"); } //已被重写 //if (env.IsDevelopment()) //{ // app.UseDeveloperExceptionPage(); //} //使用MVC默认路由 app.UseMvcWithDefaultRoute(); app.UseMvc(); //使用MVC的管道路径 可以在这里配置路由等操作 //app.UseMvc( // routes => // { // routes.MapRoute( // name: "User", // template: "{controller}/{action}/{id?}", // defaults: new { controller = "User", action = "Index" }); // }); //app.UseMvc(routes => //{ // routes.MapRoute( // name: "default", // template: "{controller}/{action=Index}/{id?}"); //}); }
2. Program类 初始内容
public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>() .Build(); }
2.1 实现不依赖 Startup 启动程序 可以直接在 Program 类中 构建 扩展,配置,配置 ,扩展,日志
public class Program { public static IServiceCollection services { get; set; } public static IHostingEnvironment HostingEnvironment { get; set; } public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) //构建 扩展,配置,配置 ,扩展,日志,ILoggerFactory .ConfigureAppConfiguration((WebHostBuilderContext, config) => { HostingEnvironment = WebHostBuilderContext.HostingEnvironment; }) .ConfigureServices((IServiceCollection, services) => { services.AddMvc(); }) .Configure(app => { if (HostingEnvironment.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); } //使用MVC默认路由 app.UseMvcWithDefaultRoute(); //使用静态文件 app.UseStaticFiles(""); //配置路由 app.UseMvc(routes => { routes.MapRoute( name: "default", template: "{controller}/{action=Index}/{id?}"); }); }) //被替换掉的启动项 // .UseStartup<Startup>() .Build(); }
不足之处,请大家指出相互学习
AspNet Core Web 应用程序的启动(有关 Program.cs类/ Startup.cs类 ) 当项目中干掉 Startup.cs 类如何设置启动 配置等等的更多相关文章
- 设计模式(一)单例模式:创建模式 ASPNET CORE WEB 应用程序的启动 当项目中 没有STARTUP.CS 类如何设置启动 配置等等
设计模式(一)单例模式:创建模式 先聊一下关于设计的几个原则(1)单一原则(SRP):一个类应该仅有一个引起它变化的原因 :意思就是 (一个类,最好只负责一件事情,并且只有一个引起它变化的原因(2)开 ...
- AspNet Core Web 应用程序的启动 当项目中 没有Startup.cs 类如何设置启动 配置等等
感叹: Core 16年6月1号 在中国宣布上线 到现在已经快经历两年时间了,目前版本已经到了2.0 就目前的前景来看,个人感觉 到2020年才可能有所起色,等到Core更成熟 个人看法:在.net这 ...
- Asp.Net Core Web应用程序—探索
前言 作为一个Windows系统下的开发者,我对于Core的使用机会几乎为0,但是考虑到微软的战略规划,我觉得,Core还是有先了解起来的必要. 因为,目前微软已经搞出了两个框架了,一个是Net标准( ...
- 使用docker部署Asp.net core web应用程序
拉取aspnetcore最新docker镜像 aspnetcore的docker镜像在docker官网是有的,是由微软提供的.它的依赖镜像是microsoft/dotnet.通过访问网址:https: ...
- ASP.NET Core Web 应用程序系列(五)- 在ASP.NET Core中使用AutoMapper进行实体映射
本章主要简单介绍下在ASP.NET Core中如何使用AutoMapper进行实体映射.在正式进入主题之前我们来看下几个概念: 1.数据库持久化对象PO(Persistent Object):顾名思义 ...
- ASP.NET Core Web 应用程序系列(三)- 在ASP.NET Core中使用Autofac替换自带DI进行构造函数和属性的批量依赖注入(MVC当中应用)
在上一章中主要和大家分享了在ASP.NET Core中如何使用Autofac替换自带DI进行构造函数的批量依赖注入,本章将和大家继续分享如何使之能够同时支持属性的批量依赖注入. 约定: 1.仓储层接口 ...
- ASP.NET Core Web 应用程序系列(二)- 在ASP.NET Core中使用Autofac替换自带DI进行批量依赖注入(MVC当中应用)
在上一章中主要和大家分享在MVC当中如何使用ASP.NET Core内置的DI进行批量依赖注入,本章将继续和大家分享在ASP.NET Core中如何使用Autofac替换自带DI进行批量依赖注入. P ...
- ASP.NET Core Web 应用程序系列(一)- 使用ASP.NET Core内置的IoC容器DI进行批量依赖注入(MVC当中应用)
在正式进入主题之前我们来看下几个概念: 一.依赖倒置 依赖倒置是编程五大原则之一,即: 1.上层模块不应该依赖于下层模块,它们共同依赖于一个抽象. 2.抽象不能依赖于具体,具体依赖于抽象. 其中上层就 ...
- ASP.NET Core Web 应用程序开发期间部署到IIS自定义主机域名并附加到进程调试
想必大家之前在进行ASP.NET Web 应用程序开发期间都有用到过将我们的网站部署到IIS自定义主机域名并附加到进程进行调试. 那我们的ASP.NET Core Web 应用程序又是如何部署到我们的 ...
随机推荐
- VSCode配置eslint
在Vue.js项目中,使用的是eslint检查. 而在我写完代码后,cnpm run dev运行命令...然后悲剧了,一大堆报错!╮(╯▽╰)╭ 安装插件:Vetur:这是vscode上一个vue.j ...
- Java设计模式之职责链设计模式
1.什么是-职责链设计模式 责任链模式是一种对象的行为模式.在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求 ...
- HDU 1013.Digital Roots【模拟或数论】【8月16】
Digital Roots Problem Description The digital root of a positive integer is found by summing the dig ...
- Uva 10550 Combination Lock
Sample Input0 30 0 305 35 5 350 20 0 207 27 7 270 10 0 109 19 9 190 0 0 0Sample Output13501350162016 ...
- Java二维数组的概念和使用方法
二维数组 数组的数组---二维数组的每一个元素是一个一维数组 定义格式 数据类型[][] 数组名 = new 数据类型[二维数组的长度/包含的一维数组的个数][每个一维数组的长度]; int[][] ...
- log4j配置文件详解(转)
Log4J的配置文件(Configuration File)就是用来设置记录器的级别.存放器和布局的,它可接key=value格式的设置或xml格式的设置信息.通过配置,可以创建出Log4J的运行环境 ...
- IntelliJ IDEA创建java项目
IntelliJ IDEA创建java项目 进入到IntelliJ IDEA启动界面,点击Create New Project 2.这样就进入到了创建项目页面,这里可以创建好多项目,这里我们以java ...
- bootstrap表格固定表头,表格内容滚动条滚动显示
直接贴代码--- <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...
- 【java设计模式】【行为模式Behavioral Pattern】迭代器模式Iterator Pattern
package com.tn.pattern; public class Client { public static void main(String[] args) { Object[] objs ...
- iOS tableView 数据处理,数据分类相同数据整合、合并计算总数总价
// 数据下载得到数组数据 modelArray = [MZPriceModel mj_objectArrayWithKeyValuesArray:data[@"info"]]; ...