好吧,我現在正在學習aspnet核心,我無法理解應用何時啓動其服務器(如IIS或KestrelServer),以及服務器如何監聽httprequest並將請求轉發給應用程序。有誰能夠幫助我?感謝ASPNET CORE如何啓動以偵聽httprequest?
回答
好吧,讓我們從頭開始(因爲我無法弄清楚你對C#的知識)
每一個C#應用程序必須包含一個主要方法,指定其中程序執行開始,所以它是,默認模板有一類Program
在這裏你可以設置你會使用Web服務器的類型,並告訴服務器開始監聽HTTP請求,是這樣的:
public static void Main(string[] args)
{
var config = new ConfigurationBuilder()
.AddCommandLine(args)
.Build();
var host = new WebHostBuilder()
.UseKestrel()
.UseConfiguration(config)
.UseStartup<Startup>()
.Build();
host.Run();
}
在AspNetCore,甚至在ASPNET( MVC或WebApi)你可以(也應該)使用OWIN(aka Katana或vNext,即微軟的OWIN im分別爲AspNet和AspNetCore)。
OWIN代表一個接口(只是一個規範),它告訴WebServers應該如何與WebApplications交流。通常,它將Http請求處理到一個可以插入中間件的管道,如認證/授權,日誌,錯誤處理等,並且在管道的末端,您應該插入Web應用程序。
在AspNetCore中,您通過在主機配置中使用UseStartup<MyStartupClass>
來設置中間件管道,請參閱上面的Main
方法,並且因爲您的管道將處理每個HttpRequest。
當建設AspNetCore一個MVC應用程序(.UseMvc()
)要設置一箇中間件,它告訴你的應用程序,以尋找從Microsoft.AspNetCore.Mvc.Controller
繼承尋找REST風格的入口點(HTTP GET,POST ...)班
這只是一個簡單的概述,您可以從這些技術的文檔中瞭解更多信息。只需搜索Katana,vNext,OWIN,OWIN中間件,OWIN流水線等標籤...
ASP.NET核心應用程序解剖在此asp.net core introduction處討論。
是回答你的問題的一些重要文本是從教程如下:
的ASP.NET應用程序的核心是一個簡單的控制檯應用程序創建在其主要方法中web服務器。主要使用WebHostBuilder,它遵循構建器模式創建Web應用程序主機。構建器具有定義Web服務器(例如UseKestrel)和啓動類(UseStartup)的方法。在上面的示例中,使用了Kestrel Web服務器,但可以指定其他Web服務器。 Startup類是您定義請求處理管道的位置,以及配置應用程序所需的任何服務的位置。啓動類必須是公共的,幷包含以下方法:
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
}
public void Configure(IApplicationBuilder app)
{
}
}
我想這會幫助你瞭解asp.net的核心是如何處理HTTP請求。 謝謝
thanks.best祝願 – oldman
- 1. Lua Corona - 如何在滑動過程中偵聽widget.newScrollView偵聽器
- 2. Java:如何註冊偵聽JFrame運動的偵聽器
- 3. 試圖啓動偵聽器套接字
- 4. Spring Boot未啓動HTTP偵聽器
- 5. Android:定時後啓動偵聽器
- 6. Spring SEVERE錯誤:偵聽器啓動?
- 7. 如何偵聽ListView中的滾動?
- 8. 如何讓borderContainer偵聽滾動事件?
- 9. 如何設置偵聽器?
- 10. 如何偵聽卸載apk?
- 11. 如何在動作監聽器上控制焦點偵聽器?
- 12. 鼠標偵聽器和動作偵聽器的區別?
- 13. 觸摸偵聽器偵聽邊距
- 14. 偵聽啓用/禁用狀態更改
- 15. 如何在Mac OS X中偵聽應用程序啓動事件?
- 16. 如何從獨立啓動的Office應用程序偵聽COM事件?
- 17. 在Tomcat中啓動ActiveMQ消息偵聽器?
- 18. 使Twilio偵聽來自設備啓動的來電
- 19. 爲什麼lighttpd mod_fastcgi會啓動偵聽套接字?
- 20. JMS:偵聽OracleAQ
- 21. 兩個偵聽
- 22. 如何將偵聽器添加到現有的偵聽器對象?
- 23. Oracle AQ - 如何確定一個偵聽器是否正在偵聽隊列
- 24. 重寫addEventListener以與普通'click'偵聽器同時添加'touchstart'偵聽器
- 25. 如何刪除自定義偵聽器?
- 26. 如何正確清理MSMQ偵聽器?
- 27. 事件偵聽器如何工作?
- 28. 如何創建POST偵聽器
- 29. 如何偵聽節點http-proxy流量?
- 30. 如何更改Postgres偵聽端口?
您是否嘗試過搜索它?如果是,你可以分享你的發現嗎? – Daenarys
我試圖看到他的來源,但我沒有找到 – oldman