我是一名新手,想要部署 ASP.NET 网站并将其托管在 UBUNTU 12 服务器或桌面上。
- 我应该将 Apache 与 MONO 结合使用吗?或者
- 在 Wine 和为 Windows 制作的免费 Web 服务器上部署 MS .NET Framework?
如果存在针对任一选项的完整说明,我将不胜感激,如果您可以提供链接,因为我在互联网上找到的信息大多是零散的说明,我很难理解
ps 适用于 Windows 的免费 Web 服务器来自 UtilDev 或 Abyss,两者都有适用于 Windows 的免费版本
提前致谢
答案1
我认为您忽略了第三个选项,需要认真考虑:不。
让我们从您提出的选项开始:
Mono 很好(对于构建的东西为了Mono),但它几乎没有经过很好的测试,而这在你处理在线服务时真的非常重要,因为几乎没有什么可以保证它能可靠地工作,即使能,它是否安全?
如果这是一个本地项目并且网站可以运行,那么可能就足够了。如果这是一个在线资源并且被广泛使用,那么就会被坏人探测漏洞(每个网站都是如此)。我不确定 Mono 是否合适。
Wine 无法工作。你需要运行的不仅仅是 .NET,而是整个 IIS 堆栈。两者之间没有区别真实的因此,从法律和技术角度来看,Windows 和 IIS 都已失败告终。
如果你必须停在那里并从中选择一个,这是毫无疑问的。Mono 每次都赢。但这不是你仅有的两个选择。还有第三个选项,你只是不尝试在 Ubuntu 下运行 ASP.NET 网站。这给你留下了两个选择:
- 使用适当的 Windows/IIS/SQL Server/ASP.NET 堆栈。
- 将网站移植到可移植的版本(PHP/Django/etc)
2010 年我也遇到过类似的情况。几年前,我将桌面迁移到了 Ubuntu,发现维护个人网站非常困难,因为它有数千行编译的 ASP.NET。如果我想进行重大更改,则需要在 VirtualBox 上的 XP 中加载 Visual Studio。
这比你的情况更极端,但在更合适的框架中重写是我对该网站所做的最好的事情。
答案2
Mono 框架毫无疑问。如果你问我,Wine 仅用于在桌面上运行应用程序和游戏。它崩溃的次数太多,错误太多——它不够稳定,无法部署任何产品。
Mono 专为 C# 和 .NET 跨平台而设计。我认为这是你最好的选择,应该可以正常工作。