Asp.net-Core
是否可以直接在 Azure WebApps 中的 Kestrel 上執行 ASP.NET 5 站點?
當我將 ASP.NET5 部署到 azure web 應用程序時,我已經在 web 響應中檢查了伺服器是 IIS,所以我猜 IIS 平台處理程序用於將其重定向到 Kestrel。所以我想知道是否可以直接在 Kestrel 上執行,以及它有什麼好處/缺點(可能不管它是否在 Azure 中)。我想它會快一點,因為 IIS 將從管道中排除,但我想它不應該有太多的成本……
在 Azure Web App 上,您無法繞過 IIS。
但在一般情況下,你絕對可以直接執行 Kestrel。畢竟
dnx web,這正是 XPlat 版本(Linux、OSX)最終將使用的(幾乎)。不使用 IIS 的損失
- 安全性(與 IIS 相比更新的組件)
- 輕鬆設置 SSL
- 處理文件/記憶體和其他東西的核心模組(核心=更快)
- 應用程序監控/Keep-Alive(如果 Kestrel 崩潰會發生什麼)
- 多個主機名單埠(80)重用
- 等等
不使用 IIS 的好處
- 完全控制您的流程
- 更高的整體性能
- 更簡單的安裝/執行
如果您選擇不使用 IIS,您應該怎麼做
如果您對“輸”點感到滿意,我仍然會去將您的 Kestrel 託管在反向代理或 NGINX 伺服器後面。Kestrel 是為“生產就緒”而設計的,但它不是 NGINX 或 IIS。
據我所知,它不會讓自己保持活力。
如果我錯過了什麼,請告訴我。