ASP.NET Core入門

來源:互聯網
上載者:User

標籤:web   Proxy 伺服器   http   應用   share   process   asp   啟動   lov   

 

一、搭建開發環境

在Windows平台下,開發.NET Core 程式需要安裝如下內容:

1. .NET Core runtime

2. Visual Studio 2015 with Update 3

可參考微軟的官方指南:https://www.microsoft.com/net/core#windowsvs2015

 

二、建立樣本

1.選擇.NET Core Web Application模版

 

2.選擇Web Application

 

3.等待VS還原packages

 

4.按F5啟動瀏覽器能看到下面的頁面證明一個Demo已經建立成功了。

 

三、程式進入點

3.1 Main函數

ASP.NET Core程式如.NET Framework裡面的Console Application類似,有一個Main函數的進入點。在預設情況下,ASP.NET Core程式的Main函數是放在Program.cs類裡面,如下:

 

在這個Main函數中,使用WebHostBuilder的執行個體建立一個Web application Host。執行個體的UseKestrel方法定義了web伺服器和Startup類。在WebHostBuilder中提供了很多可選的方法,包括:UseIISIntegration(在IIS和IIS Express中寄宿ASP.NET Core程式)、UseContentRoot (指定根內容的目錄)。Build和Run方法構建用於寄宿程式的IWebHost對象,並啟動對進入的HTTP請求的監聽。

 

3.2 宿主(Host)和伺服器(Server)

ASP.NET Core 程式要求在Host才能執行。
Host:負責程式的啟動和生命週期管理。包括:確保應用程式的服務可用並正確配置。
Server:負責接收HTTP請求。你可以把Host作為是對Server的封裝器。
Host被配置用來使用Server;Server對Host一無所知。

 

3.3 WebHostBuilder

WebHostBuilder是用於配置和啟動host的。Host一般都使用WebHostBuilder的執行個體來建立。WebHostBuilder的執行個體構建和返回一個WebHost的執行個體。Host必須實現IWebHost介面。IWebHost介面介面暴露了features和services集合,以及一個Start方法。

 

3.4 Kestrel

在之前版本的ASP.NET程式中必須依賴IIS來啟動,而IIS會為掛載在其中的ASP.NET註冊一個ISAPI filter。每當請求過來時,IIS則會啟動w3wp的worker process來開始整個ASP.NET runtime程式。

在.NET Core誕生之後,為了適應跨平台的需要,ASP.NET Core的啟動方式被重新設計以適應新的需求,所以它和IIS之間的關係也有所改變。為了跨平台,ASP.NET現在的執行方式就如一般的Console Application一樣。

在ASP.NET Core中內建一個基於libuv的高效能I/O非同步裝置——Kestrel,使得ASP.NET Core程式可以不依賴與IIS的存在便能啟動runtime。也可以使用其他的Web伺服器。

 

3.5 UseIISIntegration

如果ASP.NET Core程式和IIS一起使用的話,UseIISIntegration方法應該作為構建Host的一部分被調用。為了在ASP.NET Core中使用IIS,你必須同時指定UseKestrel和UseIISIntegration。Kestrel是被設計為在代理的背後運行,你不能面向互連網直接部署。UseIISIntegration指定IIS作為反向 Proxy伺服器。如果是Linux,你應該使用Nginx或類似的反向 Proxy伺服器。

 

3.6 Startup類

負責配置請求管道,處理所有程式中的請求。

 

四、參考

https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/hosting
http://codelover.link/2016/07/28/asp.net-core-startup/
https://dotblogs.com.tw/aspnetshare/2016/03/28/20160327

 

原文串連:http://www.cnblogs.com/liszt/p/6402320.html

 

ASP.NET Core入門

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.