在基于Linux的服务器上运行ASP.Net

Ana*_*and 89 linux asp.net mono

对于具有Java背景的开发人员,我也有兴趣使用ASP.NET工具/平台来探索软件开发.

Java Web应用程序(.jsp和servlet)可以在许多服务器平台上运行.

问题:.NET Web应用程序是否能够在基于Linux的服务器上运行?考虑到无法使用Windows服务器托管Web应用程序的情况.

Ter*_*nce 85

所以我知道这是一个较老的问题,但我认为这可能是一个更新的答案.

微软已正式发布了asp.net vnext及其开源软件,并可部署到Linux和Mac.它仍然很新,但依赖于最新的单声道版本,因此目前需要你编译,mono-framework但我及时怀疑它将更容易访问,因为各种Linux发行版发布更新版本的单声道.这是一个如何设置指南

此信息可能有些不稳定,并且更新是由于更改.

更新ASP.NET CORE 11/10/2017

  • 现在称为".NET Core",更稳定 (7认同)

ala*_*irs 67

这取决于您使用的具体.NET技术.该Mono项目提供运行ASP.NET网站的Apache模块(是mod_mono),并从我收集它工作得很好.

但Mono并不支持所有的.NET API - 特别是WPF(也可能是WCF,我记不清了) - 但它确实为框架的其他部分提供了很好的支持.

如果您从头开始并且特别想要定位非Windows服务器,那么确保您的项目与Mono一起工作将是一个很好的目标.但是,如果您需要Mono不支持的特定API或语言功能,则需要使用Windows服务器进行部署.这是一个设计时/建筑选择应该在前面.

  • 如果您不熟悉Mono项目及其维护者,[此答案](http://stackoverflow.com/a/1163321/5296)是Joel所指的项目. (7认同)
  • fyi,单声道项目维护者也在这个问题上有答案. (2认同)

mig*_*aza 22

您可能需要考虑本指南,以帮助Windows开发人员将其代码移植到Mono/Linux:

指南:移植ASP.NET应用程序 - 单声道


the*_*sdj 12

我可以从经验中说出来.即使您的ASP.net网站仅使用Mono支持的.NET库,如果它超出Hello World,您将很难运行它.

您不必重写大量代码,但是您将花费数小时/数天/周来处理mod_mono/xsp/apache配置和文件权限和错误处理以及进入大型网站的所有小问题的小问题.(准备花很多时间在serverfault上提问:))

问题是很多人不使用Mono用于ASP.net网站,因此没有多少人报告错误,所以很多小错误的东西长时间都没有修复.


Tep*_*epu 10

现在,您可以使用Visual Studio将ASP.NET 5应用程序发布到Linux上的Docker.请参阅Scott Haselman的以下帖子

http://www.hanselman.com/blog/PublishingAnASPNET5AppToDockerOnLinuxWithVisualStudio.aspx


mqu*_*eia 10

由于技术的发展和这个问题在谷歌排名第一,我们需要在单声道之外加入新的asp.net核心,这是完全重写的asp.net,用于Linux和Windows的生产以及Linux的开发,Windows和Mac:

您可以在Windows,Mac和Linux上跨平台开发和运行ASP.NET核心应用程序.ASP.NET Core是GitHub的开源软件.


dde*_*dde 5

我们可以.熟悉Mono Project并阅读本文以开始使用.