将 .aspx 网站转换为 ASP.NET Core

Posted

技术标签:

【中文标题】将 .aspx 网站转换为 ASP.NET Core【英文标题】:Converting .aspx Websites To ASP.NET Core 【发布时间】:2018-04-11 17:31:34 【问题描述】:

我们的企业收购了一家旧的网络托管公司,该公司在多台服务器上混合运行 IIS 和 Apache 站点。我们正在计划从旧的基础架构迁移到我们的系统。

我们希望在 Linux/Apache 上运行所有这些站点,并已在此 Linux 服务器上成功安装了 ASP.NET Core,并且能够在 this tutorial 之后提供一个空白 Web 应用程序而不会出现问题,并进行一些修改。

我们面临的问题是,我们有大约 40 个使用 .aspx 网页运行的网站,并且与 SQL Server 有数据库连接。不仅如此,有些网站还有购物车系统和定制的 CMS 管理面板,所有这些都需要移植。

我们可以看到几个选项:

    配置 Web 应用以提供 .aspx 页面? (甚至不确定是否可行)

    我不确定这是否可能,在 .NET Core 中采用默认模板并将其配置为呈现 .aspx 页面。

    在 .NET Core 中完全重建站点 (不是一个选项)

    这根本不是一种选择,因为考虑到我们拥有的小团队,这种迁移不需要向客户计费,并且需要数月甚至数年才能完成。

    将当前站点合并到 .NET Core

    有没有办法获取 .aspx 页面并以快速方式或通过某种工具进行转换?

    配置 Linux/.NET Core 以使用现有站点 (最理想)

    我们可以简单地将所有站点文件复制到用户的 public_html 文件夹并配置 dotnet 服务以显示这些页面吗?

任何见解/建议都会非常有帮助。

【问题讨论】:

需要使用 asp.net 核心重建站点。选项 2(您不认为这是一个选项)似乎是您唯一可行的选项。网站所有者也可以选择他们想要使用 Linux/Apache 或 Windows/IIS 的服务器。 【参考方案1】:

首先,重要的是要指出,虽然 .NET Core 和 .NET Framework 有很多共同点,但它们实际上是两个不同的东西。看看What's the difference between .NET Core, .NET Framework, and 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 下运行。

【讨论】:

以上是关于将 .aspx 网站转换为 ASP.NET Core的主要内容,如果未能解决你的问题,请参考以下文章

如何将ASP.NET网站的IIS默认的首页为index.aspx.

Google Adword 和 asp.net 母版页

如何将 ASP.NET 网站转换为 ASP.NET Web 应用程序

ASP.NET 2.0 JQuery AJAX 登录

ASP NET 如何将事件从 ASPX 发送到 ASCX

如何将c#做好的asp.net网站部署到iis上