11 .net core WebHost

WebHost

通过如下代码生成WebHost

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

    public static IWebHostBuilder CreateWebHostBuilder (string[] args) =>
        WebHost
        // 生成默认Web生成器
        .CreateDefaultBuilder (args)
        // 指定 Startup 类
        .UseStartup<Startup> ();

CreateDefaultBuilder 执行了以下任务:
1.将 Kestrel 配置为 Web 服务器并配置该服务器。 有关 Kestrel 默认选项,请参阅 ASP.NET Core 中的 Kestrel Web 服务器实现。
2.将内容根设置为由 Directory.GetCurrentDirectory 返回的路径。
3.配置主机环境(IHostingEnvironment)
4.配置配置(appsettings.{Environment}.json):
5.配置控制台和调试输出的日志记录。

配置主机环境

应用程序名称
IHostingEnvironment.ApplicationName
该值默认设置为包含应用入口点的程序集的名称。 要显式设置值使用如下代码

WebHost.CreateDefaultBuilder(args)
.UseSetting(WebHostDefaults.ApplicationKey, "CustomApplicationName")

捕获启动错误
此设置控制启动错误的捕获。
当 false (默认)时,启动期间出错导致主机退出。 当 true 时,主机在启动期间捕获异常并尝试启动服务器。

WebHost.CreateDefaultBuilder(args)
.CaptureStartupErrors(true)

内容根
ASP.NET Core 搜索内容文件的目录,如 MVC 视图目录的路径为 内容根+/View 等。
默认值为应用程序集所在的文件夹

WebHost.CreateDefaultBuilder(args)
.UseContentRoot("c:\\<content-root>")

环境
设置应用的环境
环境可以设置为任何值,默认Production

WebHost.CreateDefaultBuilder(args)
.UseEnvironment(EnvironmentName.Development)

承载启动程序集
设置应用的承载启动程序集。

WebHost.CreateDefaultBuilder(args)
.UseSetting(WebHostDefaults.HostingStartupAssembliesKey, "assembly1;assembly2")

HTTPS 端口
设置 HTTPS 重定向端口。 用于强制实施 HTTPS。

WebHost.CreateDefaultBuilder(args)
.UseSetting("https_port", "8080")

服务器 URL
指示 IP 地址或主机地址,其中包含服务器应针对请求侦听的端口和协议。
默认值http://localhost:5000,多个地址以分号分隔 (😉

WebHost.CreateDefaultBuilder(args)
.UseUrls("http://*:5000;http://localhost:5001;https://hostname:5002")

关闭超时
指定等待 Web 主机关闭的时长。

WebHost.CreateDefaultBuilder(args)
.UseShutdownTimeout(TimeSpan.FromSeconds(10))

启动程序集
确定要在其中搜索 Startup 类的程序集。
按名称(string)或类型(TStartup)的程序集可以引用

WebHost.CreateDefaultBuilder(args)
.UseStartup<TStartup>()

Web 根路径
设置应用的静态资产的相对路径。
默认值是“(Content Root)/wwwroot”

WebHost.CreateDefaultBuilder(args)
.UseWebRoot("public")

管理主机

运行
Run 方法启动 Web 应用并阻塞调用线程,直到关闭主机:

host.Run();

Start
通过调用 Start 方法以非阻塞方式运行主机:

using (host) {
    host.Start ();
    Console.ReadLine ();
}

IHostingEnvironment 接口
IHostingEnvironment 接口提供有关应用的 Web 承载环境的信息。
使用构造函数注入获取 IHostingEnvironment 以使用其属性和扩展方法:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值