在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
前言:
项目配置 本篇内容简介: 1. 创建新项目打开 Visual Studio 2019,点击 Create a new project ,然后选择 ASP.NET Core Web API : 填写项目名称并选择项目路径: 然后选择目标框架,并点击 Create : 2. launchSettings.json 文件项目创建成功后,在解决方案的 这个文件决定了 { "$schema": "http://json.schemastore.org/launchsettings.json", "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:59126", "sslPort": 44389 } }, "profiles": { "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "launchUrl": "weatherforecast", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } }, "CompanyEmployees": { "commandName": "Project", "launchBrowser": true, "launchUrl": "weatherforecast", "applicationUrl": "https://localhost:5001;http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } } } } 由于我们开发的是 Web API 项目,因此我们并不需要使用浏览器像查看 Web 项目一样来查看 API,我们之后会通过 Postman (以后会介绍)来调用并查看 API 的输出。而为了阻止应用程序启动时自动打开浏览器,需要将
在创建项目时,如果勾选了 注意:此 HTTPS 配置项尽在本地环境中有效,当应用程序正式部署后,必需配置真实有效的证书。 在本地开发应用程序时,还有一个很重要的属性: 3. Program.cs 和 Startup.csASP.NET Core 应用程序本质是一个控制台应用程序,它通过创建 web 服务器来托管应用程序并监听传入的HTTP请求,然后返回响应,所以程序的入口还是 Program 类的 Main() 方法,ASP.NET Core Web API 应用程序中的 Program 如下: public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<Startup>(); }); } 关于 Host 的启动过程,可以参考:以后补充。
之后,调用 public class Startup { public Startup(IConfiguration configuration) { Configuration = configuration; } public IConfiguration Configuration { get; } // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllers(); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); } } 其中,正如方法名字所示, 由于较大的应用程序可能包含许多不同的服务,因此在 4. 扩展方法和 CORS 配置扩展方法本质上是一种静态方法。它与其他静态方法的不同之处在于,它接受 this 作为第一个参数, this 表示使用该扩展方法的对象的数据类型。 扩展方法必需定义在静态类中,它扩展了.NET 中类型的行为。一旦定义了扩展方法,就可以在同一类型的对象上多次链式调用它。 接下来开始写代码,首先在项目中创建一个新的文件夹: Extensions 然后在该文件夹中创建一个类: public static class ServiceExtensions { } 接下来就开始实现一个具体的功能,这样就能看到应该如何使用静态类。我们要做的第一件事就是在应用程序中配置 CORS。 如果我们想从不同的域向应用程序发送请求,那就必须配置 CORS。所以接下来就在 public static void ConfigureCors(this IServiceCollection services) => services.AddCors(options => { options.AddPolicy("CorsPolicy", builder => { builder.AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader(); }); }); 我们这里暂时使用基本的 CORS 策略设置,因为目前来说允许所有来源 ( 当有需要的时候,我们可以使用 WithOrigins("https://example.com") 方法来限制请求只能来自某个具体源,而不是使用 AllowAnyOrigin() 方法允许来自所有源的请求。同样,可以使用 5. IIS 配置
public static void ConfigureIISIntegration(this IServiceCollection services) => services.Configure<IISOptions>(options => { }); 目前我们使用默认配置就可以,所以在上述代码中没有初始化 options 的任何属性。如果想修改某些配置,可以参考 官方文档 : 至此,我们已经编写了用于支持 CORS 和 IIS 集成的扩展方法,接下来就在 // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { //custom extension methods services.ConfigureCors(); services.ConfigureIISIntegration(); services.AddControllers(); } 对于直接在 我们已经成功的将 CORS 和 IIS 配置添加到应用程序的服务容器中,但是还没有真正用到这些服务,所以还需要在 // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseHttpsRedirection(); //custom pipeline start app.UseStaticFiles(); app.UseCors("CorsPolicy"); app.UseForwardedHeaders(new ForwardedHeadersOptions { ForwardedHeaders = ForwardedHeaders.All }); //custom pipeline end app.UseRouting(); app.UseAuthorization(); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); } 其中,
6. Startup 类中的其它代码
Configure() 方法:
7. 基于环境的设置在开发应用程序时,我们使用 开发 ( 当我们创建一个项目后,可以在项目的根目录中看到
为了设置应用程序运行时的环境,我们需要设置 ASP.NET Core 应用程序通过上述环境变量的值来决定使用哪个 appsettings.json 文件,例如在生产环境中,将会使用 对于应用程序开发来说,日志记录是非常重要的一项功能,无论是在开发中、还是部署后的使用中,日志都会帮助我们发现、记录问题,我们可以根据日志来定位、复现并修复问题,所以尽可能的早的将日志服务添加到应用程序中是很有必要的, 到此这篇关于ASP.NET Core Web API 教程Project Configuration的文章就介绍到这了,更多相关ASP.NET Core Web API 教程内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论