在曾经的 asp.net 5 过渡时期,运行 asp.net 5 站点的命令是dnx web;在如今即将到来的 asp.net core 时代,运行 asp.net core 站点的命令是dotnet run(启动控制台程序也是同样的命令)。

在使用dnx web时,需要在project.json中配置对应的web command:

"commands": {
"web": "Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:5004"
}

而使用dotnet run启动asp.net core站点,不需要在project.json中进行额外的配置,但需要增加program.cs文件,并且添加相应的代码,比如以下的代码(来自cli-samples):

public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseServer("Microsoft.AspNetCore.Server.Kestrel")
.UseApplicationBasePath(Directory.GetCurrentDirectory())
.UseDefaultConfiguration(args)
.UseIISPlatformHandlerUrl()
.UseStartup<Startup>()
.Build(); host.Run();
}
}

上面的代码让dotnet run启动 asp.net core 站点的秘密一览无余。

Web应用程序程序与控制台应用程序使用同样的入口,实现了启动方式的统一,变得更简单。

Web站点的启动工作是由WebHostBuilder(源码)起头的,但它只是准备一些启动参数,最终把启动工作交给了真正的主角—WebHost(源码)。

dotnet run只负责加载.NET Core运行环境与调用应用程序的入口,web站点的启动完全由Microsoft.AspNetCore.Hosting负责。dotnet run启动asp.net core站点就是这么简单清晰。

dotnet run是如何启动asp.net core站点的的更多相关文章

  1. 基于VS2017的Docker Support体检ASP.NET Core站点的Docker部署

    最近在学习如何用 Docker 部署生产环境中的 ASP.NET Core 站点,作为一个 Docer 新手,从何处下手更容易入门呢?一开始就手写 Docker 配置文件(Docfile, docke ...

  2. 在Linux上以服务的方式运行ASP.NET Core站点

    更新:用supervisor是更好的解决方法,详见 Linux下为 dotnet 创建守护进程 要在生成环境下在Linux服务器上跑ASP.NET Core站点,首先要解决的问题是以服务的方式运行AS ...

  3. 用"hosting.json"配置ASP.NET Core站点的Hosting环境

    通常我们在 Prgram.cs 中使用硬编码的方式配置 ASP.NET Core 站点的 Hosting 环境,最常用的就是 .UseUrls() . public class Program { p ...

  4. Cenos7 部署asp.net core站点

    系统版本 rpm -q centos-release --- centos-release--5.1804.el7.centos.x86_64 安装libicu yum install libunwi ...

  5. .NET跨平台之旅:将QPS 100左右的ASP.NET Core站点部署到Linux服务器上

    今天下午我们将生产环境中一个单台服务器 QPS(每秒请求数)在100左右的 ASP.NET Core 站点部署到了 Linux 服务器上,这是我们解决了在 .NET Core 上使用 EnyimMem ...

  6. .NET跨平台之旅:在Linux上以本地机器码(native)运行ASP.NET Core站点

    在将“.NET跨平台之旅”示例站点 about.cnblogs.com 从 ASP.NET 5 RC1 升级至 ASP.NET Core 1.0 (博文链接)之后,我们有一个难以抗拒的冲动 —— 体验 ...

  7. 以self-contained方式在Linux上部署ASP.NET Core站点

    今天准备将一个在Windows上用VS2015开发的ASP.NET Core程序部署到阿里云Linux服务器上,部署时发现这台服务器是内网服务器,无法直接安装.NET Core SDK,于是想到尝试用 ...

  8. 将asp.net core站点发布到IIS上遇到的问题

    今天第一次将整个 asp.net core 站点发布到 IIS 上,以前都是发布到 Linux 服务器上. 开始使用 dotnet publish -c release 命令发布,用浏览器访问站点时出 ...

  9. .NET跨平台之旅:在生产环境中上线第一个运行于Linux上的ASP.NET Core站点

    2016年7月10日,我们在生产环境中上线了第一个运行于Linux上的ASP.NET Core站点,这是一个简单的提供后端服务的ASP.NET Core Web API站点. 项目是在Windows上 ...

随机推荐

  1. python 格式化 json输出

    利用python格式化json 字符串输出. $ echo '{"json":"obj"}' | python -m json.tool 利用python -m ...

  2. JStorm注意事项

    storm.yaml的配置可以参照defaults.yaml,例如: nimbus.childopts: " -Xms256m -Xmx256m -XX:+UseConcMarkSweepG ...

  3. 8.4 H5知识点总结

    HTML简介 HyperText Markup Language 简称为HTML HyperText: 超文本 (文本 + 图片 + 视频 + 音频 + 链接) Markup Language: 标记 ...

  4. scala 学习心得

    scala 安装步骤 文件下载地址:www.scala-lang.org(Please report bugs at https://issues.scala-lang.org/. We welcom ...

  5. js中~~的用法

    ~~(Math.random()*(1<<24))).toString(16) ~~的作用相当于parseInt

  6. Python随机森林算法的使用

    #coding:utf-8 # from python.Lib.packages.sklearn.tree import DecisionTreeClassifier # from python.Li ...

  7. struts1 html: textarea 不换行,变形

    <html:textarea property="summary" style="word-wrap:break-word;word-break:break-all ...

  8. oracle数据学习第一天

    SQL(Strutured Query Language):结构化查询语言 SQL可分为: <1>数据定义语言(DDL):Data Definition Language 用于建立.修改. ...

  9. HttpModule的一些初步认识

    新建一个类 ValidaterHttpModuleEvents继承管道接口 IHttpModule,代码如下 public class ValidaterHttpModuleEvents:IHttpM ...

  10. 理解GC日志

    每一种收集器的日志形式都是由它们自身的实现所决定的,换而言之,每个收集器的日志格式都可以不一样.但虚拟机设计者为了方便用户阅读,将各个收集器的日志都维持一定的共性,例如以下两段典型的GC日志: 33. ...