<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
Core與早期版本的 ASP.NET 對比,設定應用程式的方式的 Global.asax、FilterConfig.cs和RouteConfig.cs 都被Program.cs 和 Startup.cs取代了。Program.cs作為Web應用程式的預設入口,在沒有任何修改的情況下,會呼叫同目錄下Startup.cs中的ConfigureServices 和 Configure方法。
Startup類設定服務和應用的請求管道。Program.Main方法是應用程式的託管入口。在構建應用程式的主機(WebHost)時,系統為應用程式指定 Startup 類,而Main入口通過主機生成器(IWebHostBuilder)呼叫Build時,生成對應的應用程式的主機(WebHost),並啟動執行(Run)。
public class Program { public static void Main(string[] args) { CreateWebHostBuilder(args).Build().Run(); } public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<Startup>(); }
當應用程式啟動時,執行時會呼叫Startup類的 ConfigureServices 和 Configure方法:
public class Startup { // Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { ... } // Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app) { ... } }
Startup類必須定義Configure方法,但是可選擇定義一個ConfigureServices 方法,這些方法將在應用程式啟動時被呼叫。下面我們再來了解下這兩個方法。
用於設定應用程式所需要的服務。
對於需要大量設定的功能,IServiceCollection 上有 Add{Service} 擴充套件方法。 典型 ASP.NET Core 應用將為實體框架(Entity Framework)、標識(Identity)和 MVC 註冊服務:
public void ConfigureServices(IServiceCollection services) { // 新增 Entity Framework服務 services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer( _Configuration.GetConnectionString("DefaultConnection"))); services.AddDefaultIdentity<IdentityUser>() .AddDefaultUI(UIFramework.Bootstrap4) .AddEntityFrameworkStores<ApplicationDbContext>(); // 新增MVC設定相容版本服務. services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); // 新增應用程式服務. services.AddTransient<IEmailSender, AuthMessageSender>(); services.AddTransient<ISmsSender, AuthMessageSender>(); }
將服務新增到服務容器,使其在應用程式和Configure方法中可用。服務通過依賴關係注入(DI)或 ApplicationServices 進行解析。
用於指定應用程式響應HTTP請求的方式。
可通過將中介軟體(middleware)元件新增到IApplicationBuilder範例來設定請求管道。Configure方法可使用 IApplicationBuilder,但未在服務容器中註冊。託管建立 IApplicationBuilder並將其直接傳遞到Configure。
通俗點來說,Configure方法用於指定ASP.NET應用程式將如何響應每個HTTP請求,你可以設定每個請求都接受相同的響應。而更復雜的管道設定可以封裝於中介軟體(middleware)中,並通過擴充套件方法新增到IApplicationBuilder上。Configure方法必須接受一個IApplicationBuilder引數。
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Error"); app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseCookiePolicy(); app.UseMvc(); }
到此這篇關於ASP.NET Core應用啟動Startup類的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45