Asp.net
在 Linux 上執行 ASP.Net 與以 Microsoft 為中心的標準解決方案相比如何?
我知道使用Mono和Apache在 Linux 上開發和託管一個 ASP.Net 站點是可能的,但我想知道它的工作情況以及它是否值得麻煩?我更喜歡開源,但對於這個項目,我想要最快、最簡單、最可靠的解決方案。
我將要建構的站點將是一個使用MySQL的相當基本的 ASP.Net 站點。
我想知道是否有其他人在像我這樣的情況下有使用 Mono 的經驗以及項目的進展情況。它與使用以 Microsoft 為中心的解決方案相比如何?
我知道Mono仍然有些不完整,但我希望我不需要它缺少的功能。
這個問題可能有點“兩極分化”。大多數類似的問題似乎都得到了非常支持微軟或支持 Linux 的人的回答。我希望得到一些公正的回應,最好是來自有使用這兩種方法經驗的人。
大約一年半前,我從以 MS 為中心的解決方案轉換,現在我將我所有的網站和 Web 項目託管在基於 Linux/Mono/Apache/MySQL 的虛擬伺服器上(我最初使用 nginx 而不是 apache,但使用 mono -fastcgi-server 隨機導致抖動,所以我選擇 apache 作為 Web 伺服器)。我可以將我對這種配置的(主觀)經驗總結為幾點:
- 習慣 Linux 和基於 MS 的環境之間的差異可能需要一些時間(如果您以前從未使用過 Linux),但我不後悔這個決定。對我幫助很大的是為特定技術(例如單並行環境、apache 虛擬主機配置、處理某些問題)創建安裝和配置過程,這些過程大多是可重複的並且可以自動化。
- 您仍然可以使用 Visual Studio 開發您的應用程序,然後將它們部署在 Linux 機器上。如果您使用這種方法,那麼定期在單聲道上測試您的應用程序是否存在可能的不兼容性是一個好習慣。
- 我通過 FTP 部署 Web 應用程序,這可能是最簡單的方法(也許 WinSCP 更容易,因為您不必設置 FTP 伺服器,但這取決於您的偏好)。
- 到目前為止,我已經遇到了 2 個使用 Mono/Apache 的案例,其中記憶體洩漏導致網站不可用。這可能是由我在舊單聲道安裝中使用的 Boehm 垃圾收集器引起的。在最近版本的單聲道上,我沒有遇到與新 sgen GC 類似的問題。
- 與 MS 相比,我最喜歡在 Linux 環境上執行的 mono 是,在執行管理任務時,您不必一直點擊。Shell 對我來說是統一的管理界面,可以加快速度(如果你有一些實踐的話)。