重庆熊猫 Loading

ASP.NET Core教程-Configuration(配置)-配置Kestrel服务器

更新记录
转载请注明出处:
2022年11月13日 发布。
2022年11月12日 从笔记迁移到博客。

配置Kestrel服务器

ConfigureKestrel方法则能够用来配置Kestrel服务器

通过KestrelServerOptions对象(即options变量)的属性与方法

能够控制Kestrel服务器的行为

如在响应中不包含Server消息头、设置服务器侦听地址与端口、启用HTTPS等

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Net;

namespace WebApplication6
{
    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>();
                    webBuilder.ConfigureKestrel((hostingContext, options) => {
                        //是否每个HTTP响应都要有Header
                        //默认为true
                        options.AddServerHeader = false;
                        //设置监听的地址和端口
                        options.Listen(IPAddress.Loopback, 6000);
                        options.Listen(IPAddress.Loopback, 6001);
                        //设置启用HTTPS并设置SSL证书
                        options.Listen(IPAddress.Loopback, 6002, listenOptions => {
                            listenOptions.UseHttps("ssl证书文件.pfx", "ssl证书文件密码");
                        });
                    });
                });
    }
}

配置强制使用HTTP/2

本质就是配置Kestrel服务器

using System.Net;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Server.Kestrel.Core;

namespace Catalog.API
{
    public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args)
        {
            return WebHost.CreateDefaultBuilder(args)
                .ConfigureKestrel(options =>
                {
                    //设置监听配置
                    options.Listen(IPAddress.Any, 5002,listenOptions =>
                    {
                        //设置HTTP协议,启用HTTP2
                        listenOptions.Protocols = HttpProtocols.Http2;
                    });
                })
                .UseStartup<Startup>();
        }
    }
}

修改服务器侦听的IP地址、主机地址以及使用的端口号

using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Net;

namespace WebApplication6
{
    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>();
                    webBuilder.UseUrls("http://*:5000;http://localhost:5001;https://hostname: 5002");
                });
    }
}
posted @ 2022-11-13 09:01  重庆熊猫  阅读(987)  评论(0编辑  收藏  举报