L'exécution de ASP.Net sur un serveur basé sur Linux
Pour un développeur Java, je m'intéresse à l'exploration de développement de logiciels à l'aide de la ASP.NET outils/plate-forme.
Applications web Java (.jsp et de servlets) peut fonctionner sur plusieurs plates-formes de serveur.
Question: une .NET application web capable de fonctionner en un basé sur Linux serveur? Considérant le scénario de ne pas être en mesure d'utiliser un Windows server pour héberger une application web.
Vous devez vous connecter pour publier un commentaire.
Cela dépend de ce spécifique .NET les technologies que vous utilisez. Le Mono Projet fournit un module d'Apache (mod_mono) pour l'exécution de ASP.NET sites, et de ce que je comprends, il fonctionne bien.
Mono ne supporte pas tous les .NET Api, cependant, notamment en WPF (et, éventuellement, WCF trop, je ne me souviens pas) - mais il n'en fournissent un bon support pour grand chose d'autre du cadre.
Si vous êtes à partir de zéro et en particulier à la cible non-serveurs Windows, puis s'assurer que votre projet fonctionne avec Mono serait un bon objectif à atteindre. Toutefois, si vous avez besoin d'notamment des Api ou des fonctionnalités de langage qui ne sont pas pris en charge par la Mono, alors vous aurez besoin d'utiliser un Windows serveur pour le déploiement. C'est un moment de design/architectural choix que doit faire avant.
Donc je sais que c'est une vieille question, mais je pense qu'il pourrait tenir à jour une réponse.
Microsoft a officiellement publié asp.net vnext et de son open source et déployez-pouvoir à la fois Linux et Mac. Son tout encore assez nouveau mais il compte sur les dernières versions de mono-et donc besoin de vous pour compiler le
mono-framework
mais dans le temps, je soupçonne qu'il sera plus facile d'accès que les diverses distributions linux version mise à jour des versions de mono. C'est une façon de guide d'installationCette information peut être quelque peu volatile et avec les mises à jour en raison de la variation.
Mise à jour ASP.NET CORE 11/10/2017
.NET Core
et plus stableVous pourriez envisager ce guide qui aide les développeurs Windows port leur code de Mono/Linux:
Guide: le Portage ASP.NET Applications - Mono
Je peux parler d'expérience. Même si votre ASP.net site web utilise uniquement .Bibliothèques NET pris en charge par la Mono vous allez avoir un moment difficile de le faire fonctionner si ses quelque chose au-delà de Bonjour tout le Monde.
Vous n'aurez pas à re-écrire beaucoup de code, mais vous passerez des heures/jours/semaines de traiter avec peu de problèmes avec mod_mono/xsp/configuration d'apache et les autorisations de fichier et de gestion des erreurs et toutes les petites choses qui vont dans un grand site web. (Soyez prêt à passer beaucoup de temps à poser des questions sur serverfault 🙂 )
Le problème est que beaucoup de gens ne les utilisent pas pour Mono ASP.net les sites web et donc il n'y a pas que beaucoup de gens de rapports de bugs, donc beaucoup de choses qui sont de bugs mineurs ne sont pas fixes pour une longue période de temps.
Maintenant, vous pouvez publier ASP.NET 5 application de Docker sur Linux avec Visual Studio. Voir ci-dessous post de Scott Haselman
http://www.hanselman.com/blog/PublishingAnASPNET5AppToDockerOnLinuxWithVisualStudio.aspx
Car les technologies évoluent, et cette question est en tête de classement dans google, nous avons besoin d'inclure au-delà de la mono la nouvelle asp.net de base, qui est une réécriture complète de la asp.net courir pour la production sous Linux et Windows et de développement pour Linux, Windows et Mac:
Oui, on peut. se familiariser avec Mono Projet et lire cet article pour commencer.
Mono
dans Linux environnement?Pour ASP.NET sur Linux, découvrez Mono.
Cela dit, des milliers de sites à exécuter sur le Serveur Windows sans aucun problème. Un mal-serveur configuré avec n'importe quel OS sera vulnérable; Linux ne vous sauvera pas d'une mauvaise admin.
Donc je suppose que ma "meilleure pratique" pour deplying un ASP.NET application serait d'utiliser Windows Server 2008 (probablement à l'édition Web). Et d'embaucher un bon administrateur.
Vous pouvez utiliser Mono à exécuter ASP.NET les applications sur un serveur Apache/Linux, mais il a un sous-ensemble limité de ce que vous pouvez faire sous Windows. Comme pour les "ils", disant que Windows est plus vulnérable à l'attaque - c'est pas vrai. IIS a eu moins de problèmes de sécurité au cours des deux dernières années d'Apache, mais dans les deux cas, tout est à l'administration de boîtes - les deux Os peuvent être facilement assurée. Ces jours-ci les points d'attaque ne sont pas le système d'exploitation ou le logiciel de serveur web, mais les applications elles-mêmes.
dotnet est la résidence officielle de .NET sur GitHub. C'est un excellent point de départ pour trouver de nombreux .NET de projets open source de Microsoft et de la communauté, dont beaucoup sont de la partie .NET Foundation.
Cela peut être un excellent point de départ pour le support de Linux.
Maintenant un jours .Net est exécuté dans de multiples plates-formes,comme linux ,Mac os, etc.
mais la mono n'est pas totalement indépendant de la plateforme ,Car de déployer .NET dans un autre système d'exploitation requis
logiciel de tierce partie.donc, il n'est pas comme java indépendant de la plateforme.
Mono est en cours d'exécution dans la plate-forme différente ,en raison de JIT est-il dans les différents os.
Mono n'est pas entièrement succès au clair de la lune(argent de la lumière .NET) .Non seulement la Recherche est en cours.
Mono utilise XSP2 server ou apache . parmi les grandes entreprises sont à l'aide de ce projet,Certains de la robotique de projets sont également en cours d'exécution sur mono.
Pour plus de détails http://www.mono-project.com/Main_Page.
Il est le Mono Projet de Novell qui va vous permettre de courir ASP.Net sur Apache.
http://www.mono-project.com/Main_Page
Le projet Mono est votre meilleure option. Cependant, il a beaucoup de pièges (comme incomplète de la prise en charge des API dans certaines régions), et il est légalement gris (des gens comme Richard Stallman ont tourné en dérision l'utilisation de Mono parce que la possibilité de Microsoft qui descend sur Mono en utilisant ses droits de brevet, mais c'est une autre histoire).
De toute façon, Apache supporte .NET/Mono par le biais d'un module, mais la dernière fois que j'ai vérifié la version fournie avec Debian, il a donné langage Perl support, je ne peux pas dire si ça a changé depuis, peut-être quelqu'un d'autre peut me corriger là.