web-dev-qa-db-fra.com

Exécution d'ASP.Net sur un serveur Linux

Pour un développeur ayant une expérience Java, je suis également intéressé par le développement de logiciels à l'aide de la plate-forme/outils ASP.NET.

Les applications Web Java (.jsp et servlets) peuvent s'exécuter sur de nombreuses plates-formes de serveur.

Question: Une application Web .NET pourra-t-elle être exécutée sur un serveur Linux? Considérant le scénario de l'impossibilité d'utiliser un serveur Windows pour héberger une application Web.

89
Anand

Cela dépend des technologies .NET spécifiques que vous utilisez. Le Mono Project fournit un module Apache (mod_mono) pour l'exécution de sites ASP.NET, et d'après ce que je comprends, cela fonctionne bien.

Mono ne prend cependant pas en charge toutes les API .NET, notamment WPF (et peut-être aussi WCF, je ne m'en souviens pas), mais il prend en charge une bonne partie de la structure.

Si vous partez de zéro et que vous souhaitez particulièrement cibler des serveurs autres que Windows, vous assurer que votre projet fonctionne avec Mono est un objectif à atteindre. Toutefois, si vous avez besoin d'API ou de fonctionnalités linguistiques non prises en charge par Mono, vous devez utiliser un serveur Windows pour le déploiement. C’est un choix architectural/de conception qui devrait faire l’avant.

67
alastairs

Je sais donc que la question est plus ancienne, mais je pense qu’elle pourrait faire l’objet d’une réponse actualisée.

Microsoft a officiellement publié asp.net vnext et son code source ouvert et peut être déployé sur Linux et Mac. Il est encore tout à fait nouveau mais repose sur les dernières versions de mono et nécessite donc actuellement la compilation du fichier mono-framework mais avec le temps, je pense qu’il sera plus facile d’accéder aux différentes versions de Linux distribuées par mono. Ceci est un guide de configuration

Ces informations peuvent être quelque peu volatiles et avec les mises à jour doivent changer.

Mise à jour de ASP.NET CORE 11/10/2017

85
Terrance

Vous voudrez peut-être envisager ce guide qui aide les développeurs Windows à transférer leur code sous Mono/Linux:

Guide: Portage d'applications ASP.NET - Mono

22
miguel.de.icaza

Je peux parler d'expérience. Même si votre site Web ASP.net n'utilise que des bibliothèques .NET prises en charge par Mono, vous aurez du mal à le faire fonctionner s'il ne se limite pas à Hello World.

Vous n'aurez pas à réécrire beaucoup de code, mais vous passerez des heures, des jours, des semaines à gérer de petits problèmes avec la configuration mod_mono/xsp/Apache, les permissions sur les fichiers, la gestion des erreurs et toutes les petites choses qui entrent dans un site Web volumineux. (Soyez prêt à passer beaucoup de temps à poser des questions sur serverfault :))

Le problème est que beaucoup de gens n'utilisent pas Mono pour les sites Web ASP.net et qu'il n'y a donc pas autant de personnes qui rapportent des bogues, donc beaucoup d'éléments mineurs restent non résolus pendant longtemps.

12
thelsdj

Étant donné que les technologies évoluent et que cette question occupe le premier rang dans Google, nous devons inclure au-delà du mono le nouveau noyau asp.net, qui est une réécriture complète du asp.net à exécuter pour la production sous Linux et Windows et pour le développement sous Linux, Windows et Mac :

Vous pouvez développer et exécuter vos applications ASP.NET Core multiplates-formes sur Windows, Mac et Linux. ASP.NET Core est open source sur GitHub.

10
mqueirozcorreia

Vous pouvez maintenant publier l'application ASP.NET 5 sur Docker sous Linux avec Visual Studio. Voir le post ci-dessous de Scott Haselman

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

10
Tepu

Oui nous pouvons. familiarisez-vous avec Mono Project et lisez cet article pour commencer.

5
dde

Pour ASP.NET sous Linux, consultez Mono .

Cela dit, des milliers de sites fonctionnent sur Windows Server sans aucun problème. Un serveur mal configuré avec n'importe quel système d'exploitation sera vulnérable; Linux ne vous sauvera pas d'un pauvre administrateur.

Je suppose donc que ma "meilleure pratique" pour déployer une application ASP.NET serait d’utiliser Windows Server 2008 (probablement une édition Web). Et embauchez un bon administrateur.

4
dahlbyk

Vous pouvez utiliser Mono pour exécuter des applications ASP.NET sous Apache/Linux. Toutefois, ce sous-ensemble est limité à ce que vous pouvez faire sous Windows. Quant à "ils", affirmant que Windows est plus vulnérable aux attaques, ce n'est pas vrai. IIS a eu moins de problèmes de sécurité qu'Apache au cours des deux dernières années, mais dans les deux cas, tout dépend de l'administration des boîtes - les deux systèmes d'exploitation peuvent être facilement sécurisés. Ces jours-ci, les points d'attaque ne sont pas le logiciel de l'OS ou du serveur Web, mais les applications elles-mêmes.

4
blowdart

dotnet est la maison officielle de .NET sur GitHub. C'est un excellent point de départ pour rechercher de nombreux projets .NET OSS de Microsoft et de la communauté, y compris de nombreux projets faisant partie de .NET Foundation.

Cela peut être un bon début pour supporter Linux.

3
Kurkula

Aujourd'hui, .Net est exécuté sur plusieurs plates-formes, telles que Linux, Mac, etc., mais mono n'est pas totalement indépendant de la plate-forme, car déployer .NET dans un autre système d'exploitation nécessite un logiciel tiers. Ce n'est donc pas comme Java plateforme indépendante.

Mono fonctionne sur une plate-forme différente, car JIT existe dans différents systèmes d'exploitation.

Mono n’est pas un succès total au clair de lune (lumière argentée en .NET). La recherche n’est pas la seule en cours.

Mono utilise un serveur XSP2 ou Apache. Certaines des grandes entreprises utilisent ce projet. Certains projets robotiques fonctionnent également en mono.

Pour plus de détails http://www.mono-project.com/Main_Page .

2
anishMarokey

Le projet Mono est votre meilleure option. Cependant, il présente de nombreux pièges (tels que la prise en charge incomplète des API dans certaines régions) et il est juridiquement gris (des personnes comme Richard Stallman ont tourné en dérision l’utilisation de Mono en raison de la possibilité que Microsoft vienne à Mono en utilisant ses droits de brevet, mais c'est une autre histoire).

Quoi qu'il en soit, Apache prend en charge .NET/Mono via un module, mais la dernière fois que j'ai vérifié la version fournie avec Debian, il ne fournissait que le support du langage Perl. Je ne peux pas dire si cela a changé depuis, peut-être que quelqu'un d'autre peut me corriger là-bas.

1
Ben

Il existe un projet Mono de Novell qui vous permettra d’exécuter ASP.Net sur Apache.

http://www.mono-project.com/Main_Page

1
Jared