Asp.net

將 .aspx 網站轉換為 ASP.NET Core

  • April 18, 2020

我們的企業購買了一家舊的網路託管公司,該公司在多台伺服器上混合執行 IIS 和 Apache 站點。我們正在計劃從舊的基礎架構遷移到我們的系統。

我們希望在 Linux/Apache 上執行所有這些站點,並已在此 Linux 伺服器上成功安裝了 ASP.NET Core,並且能夠按照本教程提供空白 Web 應用程序而不會出現問題,並進行了一些修改。

我們面臨的問題是,我們有大約 40 個網站使用 .aspx 網頁執行,並且與 SQL Server 有數據庫連接。不僅如此,有些網站還有購物車系統和定制的 CMS 管理面板,所有這些都需要移植。

我們可以看到幾個選項:

  1. 配置 Web 應用程序以提供 .aspx 頁面? (不確定是否可能)

我不確定這是否可能,採用 .NET Core 中的預設模板並將其配置為呈現 .aspx 頁面。 2. 在 .NET Core 中完全重建站點 (不是一個選項)

這根本不是一種選擇,因為考慮到我們擁有的小團隊,這種遷移不對客戶收費,並且需要數月甚至數年才能完成。 3. 將目前站點合併到 .NET Core

有沒有辦法獲取 .aspx 頁面並以快速方式或通過某種工具進行轉換? 4. 配置 Linux/.NET Core 以使用現有站點 (最理想)

我們可以簡單地將所有站點文件複製到使用者的 public_html 文件夾並配置 dotnet 服務以顯示這些頁面嗎?

任何見解/建議都將非常有幫助。

首先,重要的是要指出,雖然 .NET Core 和 .NET Framework 有許多共同點,但它們實際上是兩個不同的東西。看看.NET Core、.NET Framework 和 Xamarin 有什麼區別?.

我指出這一點的原因是因為 .NET Core 根本不支持 Web 窗體(這是 ASPX 頁面使用的),因此限制了您的選擇。

對於您的第一個問題“配置 Web 應用程序以提供 .aspx 頁面?”,使用 Web 窗體呈現 MVC 頁面是不可行的。它們以兩種完全不同的方式工作。

對於您的第二個問題,“在 .NET Core 中完全重建站點”,我明白為什麼這不是一個可行的選擇,但如果您希望僅執行基於 Linux 的伺服器,從技術角度來看,它確實是最佳選擇。

對於問題三,我在旅行中還沒有發現可以做到這一點的工具,但可能有一個。

對於您的第四個問題“配置 Linux/.NET Core 以使用現有站點”,由於我在回答開頭所說的話,答案是否定的。如果我稍微調整一下您的問題,就有可能使用 Mono 在 Linux 上執行 Web 表單。我必須強調五月部分。Mono 項目將 .NET Framework 移植到 Linux 上,並且在保留許多功能方面做得相當好。根據應用程序的不同,您可能可以使用此框架啟動並執行它,但我幾乎可以保證並非所有內容都會乾淨地移植到它。您可能會發現某些應用程序可以安全執行,而其他應用程序可能只需要在 .NET Core 中重寫即可。

您可能要認真考慮的最後一個選項是咬緊牙關,繼續讓這 40 個站點在 Windows 中的 IIS 下執行。

引用自:https://stackoverflow.com/questions/49781238