Asp.Net Core-配置
Asp.Net Core-配置
在這一章,我們將討論 ASP.NET Core項目的相關的配置。在方案總管中,您將看到 Startup.cs 檔案。如果你有以前版本的 ASP.NET的工作經驗,你可能希望看到一個 global.asax 檔案,您可以在其中編寫代碼,它是一個編寫程式啟動時立即執行的代碼的檔案。
你可能也希望看到一個 web.config 檔案,該檔案包含您的應用程式執行所需的所有配置參數。
在 ASP.NET Core中,那些檔案都沒了,取而代之的是 Startup.cs檔案.
Startup.cs裡面是一個啟動類檔案,並在該類中您可以配置您的應用程式甚至配置您的配置資源。
這裡是 Startup.cs 檔案中的預設實現代碼:
using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; namespace FirstAppDemo { public class Startup { // This method gets called by the runtime. // Use this method to add services to the container. // For more information on how to configure your application, // visit http://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { } // This method gets called by the runtime. Use this method to configure // the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { loggerFactory.AddConsole(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.Run(async (context) => { await context.Response.WriteAsync("Hello World!"); }); } } }
在啟動類中,我們的大部分工作將設計有兩種方法。Configure 方法是構建HTTP處理管道的地方。
這定義了應用程式如何響應請求。目前該應用程式只能說“Hello World!”如果我們希望該應用程式具有不同的行為,我們需要通過添加額外的代碼到這個Configure方法中來改變周圍的管道。
例如,如果我們想要提供一個 index.html 檔案的靜態檔案,我們將需要在Configure方法中添加一些代碼。
你也可以有一個錯誤頁面或Asp.Net Controller的異常請求的路由;這兩個情境還需要在這個配置方法中做一些工作。
在啟動類中,您還將看到 ConfigureServices() 方法。這可協助您配置您的應用程式的組件。
現在,我們有一個硬式編碼字串“Hello World !”來響應每個請求。我們不希望每個請求都是硬式編碼字串,我們想從一些組件載入響應字串。
其他組件可能會從資料庫載入文本,或從一個web服務或一個JSON檔案,我們不管這它是從什麼地方載入。
我們會設定一個情境,這樣我們就沒有這個寫入程式碼字串了。
在方案總管中,按右鍵您的項目節點並選擇Add→New Item。
在左側邊窗格中,選擇Installed → Code,然後在中間窗格中,選擇JSON檔案。給這個檔案取名為AppSetting.json,並單擊Add按鈕如上面的。
讓我們在AppSettings中添加以下代碼。
{ "message": "Hello, World! this message is from configuration file..." }
現在我們需要從 Startup.cs 檔案訪問此訊息。這裡是 Startup.cs 檔案從 JSON 檔案閱讀上面的訊息的實現代碼。
using Microsoft.AspNet.Builder; using Microsoft.AspNet.Hosting; using Microsoft.AspNet.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Configuration; namespace FirstAppDemo { public class Startup { public Startup() { var builder = new ConfigurationBuilder() .AddJsonFile("AppSettings.json"); Configuration = builder.Build(); } public IConfiguration Configuration { get; set; } // This method gets called by the runtime. // Use this method to add services to the container. // For more information on how to configure your application, // visit http://go.microsoft.com/fwlink/?LinkID=398940 public void ConfigureServices(IServiceCollection services) { } // This method gets called by the runtime. // Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app) { app.UseIISPlatformHandler(); app.Run(async (context) => { var msg = Configuration["message"]; await context.Response.WriteAsync(msg); }); } // Entry point for the application. public static void Main(string[] args) =7gt; WebApplication.Run<Startup>(args); } }
讓我們現在運行應用程式。一旦您運行該應用程式,它會產生下面的輸出。