在Linux下将ASP.NET应用程序移植到Mono / Apache

时间:2011-12-23 03:53:52

标签: c# asp.net .net linux mono

我有一个使用C#4.0编写的相对较小的ASP.NET项目。

我想知道是否有人设法将这样的项目移植到Linux上的网络服务器下运行,我能找到的最新信息似乎只支持ASP.Net 2.0 - Configuring and running Mono ASP.NET 3.5 (AJAX.NET) on Linux computers

该项目使用LINQ-to-SQL作为整个数据访问层,我知道Mono本身支持LINQ,所以我认为它应该有效。

我只是想知道在开始之前是否完全浪费时间。

感谢。

2 个答案:

答案 0 :(得分:7)

我使用mono在Suse Linux上运行ASP.NET 4.0应用程序。我对单声道的体验是,它只是有效。我的应用程序是〜15.000 LOC并使用第三方组件,如mongo-csharp-driver,lucene.net,elmah,munq和sphorium.webdavserver。

我在开发过程中几乎没有兼容性问题 - 而且我在那里很容易解决(例如sphorium访问注册表;这显然在Linux / Mono上有所不同)。我甚至开始使用Visual Studio安装MonoDevelop并且没有Mono插件,因为Visual Studio是一个更好的IDE,它只是在我在Linux上编译我的Web应用程序并在Apache上部署它时工作(即使我开发了。 Windows上的NET)。

I've written a short blogpost on getting started with the setup

答案 1 :(得分:3)

这绝对不是浪费时间。我工作的公司将我们的VB.Net应用程序转换为C#,以便它可以在mono下运行。该应用程序有超过200k行代码。我们现在在Amazon ec2上运行Ubuntu / Apache / Mono / Postgresql。

我唯一担心的是您的数据库。如果它是MS SQL,那么您将需要查看迁移到MySQL或Postgresql。我们再次使用300多个表和900个存储过程来完成此操作。从长远来看,这绝对是值得的。

我认为最好的入门方式是设置运行Ubuntu之类的本地环境。您可以从http://badgerports.org/的存储库中获取最新版本的mono,或者如果您愿意,可以将最新版本作为构建脚本保留here。安装monodevelop并使用mono在linux上构建代码。根据经验,使用C#的mono是一个非常完整的.net框架实现。如果您的应用程序中有某些内容尚未以单声道实现,我会感到惊讶。

我得到了一个答案here,显示了apache下的应用程序的简单配置。我将此配置用于在Ubuntu上运行的单声道应用程序。