asp.net - 将 .aspx 网站转换为 ASP.NET Core

标签 asp.net .net asp.net-mvc razor asp.net-core

我们的企业购买了一家旧的网络托管公司,该公司在多台服务器上运行 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 服务以显示这些页面吗?

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

    最佳答案

    首先,需要指出的是,虽然 .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 下运行。

    关于asp.net - 将 .aspx 网站转换为 ASP.NET Core,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49781238/

    相关文章:

    asp.net 未按配置显示自定义 404 页面

    c# - MVC 部分 View 中的表单提交

    c# - 将短语(变量)从搜索器(从 View )发送到 Controller ,asp.net mvc

    c# - 在 C# 或 VB.NET 中使用 'System.Activities.Statements.StateMachine' 类的示例

    c# - 在 MVC 中使用 ASP.NET 图表

    asp.net-mvc - 将两个值传递给 View

    c# - Ajax webmethod 仅在第一次尝试时无法触发存储过程

    asp.net - 无法验证数据。在 System.Web.Configuration.MachineKeySection.GetDecodedData

    asp.net-mvc - Kendo UI 网格一次仅展开一行

    c# - 要再次显示网页,浏览器需要重新发送信息