Вопрос по asp.net, mono, linux – Запуск ASP.Net на сервере под управлением Linux

89

Для разработчика, имеющего опыт работы с Java, я заинтересован в изучении разработки программного обеспечения с использованием инструментов и платформы ASP.NET.

Веб-приложения Java (.jsp и сервлеты) могут работать на многих серверных платформах.

Question: Сможет ли веб-приложение .NET работать на сервере под управлением Linux? Рассматривая сценарий невозможности использовать сервер Windows для размещения веб-приложения.

Ваш Ответ

13   ответов
83

Так что я знаю, что это старый вопрос, но я думаю, что он может выдержать обновленный ответ.

Microsoft официально выпустилаasp.net vnext и его открытый исходный код и возможность развертывания как для Linux, так и для Mac. Это все еще довольно новое, но оно опирается на последние сборки моно и, таким образом, в настоящее время требует, чтобы вы скомпилировалиmono-framework но со временем я подозреваю, что будет легче получить доступ, поскольку различные дистрибутивы Linux выпускают обновленные версии mono.Это руководство по установке

Эта информация может быть несколько нестабильной и с обновлениями из-за изменений.

Update ASP.NET CORE 11/10/2017

теперь известный как.NET Core и более стабильный
На сегодняшний день, какие веб-серверы Linux поддерживаются ASP.NET Core?
12

Я могу говорить из опыта. Даже если ваш сайт ASP.net использует только библиотеки .NET, поддерживаемые Mono, вам будет сложно заставить его работать, если он выходит за рамки Hello World.

Вам не придется переписывать много кода, но вы потратите часы / дни / недели на решение небольших проблем с конфигурацией mod_mono / xsp / apache, правами доступа к файлам и обработкой ошибок, а также со всеми мелочами, которые входят в большой веб-сайт. (Будьте готовы потратить много времени, задавая вопросы по поводу отказа сервера :))

Проблема заключается в том, что многие люди не используют Mono для веб-сайтов ASP.net, и поэтому не так много людей сообщают об ошибках, поэтому многие мелкие ошибки остаются не исправленными в течение длительного времени.

Я признаю, что у меня были те же мысли и я столкнулся с этим в реальном проекте.
66

Это зависит от того, какие конкретные технологии .NET вы используете.Моно Проект предоставляет модуль Apache (mod_mono) для запуска сайтов ASP.NET, и, насколько я знаю, он работает хорошо.

Mono не поддерживает все API-интерфейсы .NET, особенно WPF (и, возможно, WCF тоже, я не могу вспомнить), но он обеспечивает хорошую поддержку для многих других фреймворков.

Если вы начинаете с нуля и особенно хотите ориентироваться на серверы, отличные от Windows, то обеспечение работы вашего проекта с Mono будет хорошей целью. Однако если вам нужны определенные API или языковые функции, которые не поддерживаются Mono, вам потребуется использовать сервер Windows для развертывания. Это выбор времени проектирования / архитектуры, который должен быть решен заранее.

У меня есть страница asp.net, которую я хочу интегрировать с основным сайтом php на сервере linux. Является ли это возможным? Действительно, возможно ли иметь php и asp.net на одном сервере Linux?
Если вы не знакомы с проектом Mono и его сопровождающими,this answer это тот, на которого ссылается Джоэл.
К сведению, у сопровождающего монопроекта есть ответ и на этот вопрос.
22

Возможно, вы захотите рассмотреть это руководство, которое помогает разработчикам Windows перенести свой код на Mono / Linux:

Руководство: портирование приложений ASP.NET - Mono

4

Для ASP.NET в Linux, проверьтеМоно.

Тем не менее, тысячи сайтов работают на Windows Server без каких-либо проблем. Плохо настроенный сервер с любой ОС будет уязвим; Linux не спасет вас от плохого администратора.

Так что я думаю, что моя "лучшая практика" для развертывания приложения ASP.NET будет использовать Windows Server 2008 (скорее всего, веб-версия). И нанять хорошего администратора.

А как насчет проблемы с антивирусом ... Windows требует антивирусного программного обеспечения .. Я думаю, что это увеличит стоимость серверной части. Anand
Самый "сервер" выпуски антивирусных продуктов стоят дороже, чем их «настольные» издания, часто в несколько раз больше, в основном из-за ожидаемого использования. Я рекомендую AVG (www.avg.com), ESET (www.eset.com) или Computer Associates (www.ca.com).
10

Так как технологии развиваются, и этот вопрос занимает первое место в Google, мы должны включить помимомоно новое ядро asp.net, которое полностью переписаноasp.net для работы в Linux и Windows и для разработки для Linux, Windows и Mac:

You can develop and run your ASP.NET Core apps cross-platform on Windows, Mac and Linux. ASP.NET Core is open source at GitHub.

2

Теперь .Net работает на нескольких платформах, таких как Linux, Mac OS и т. Д. но mono не является полностью независимым от платформы, потому что для развертывания .NET в другой ОС требуется стороннее программное обеспечение. Так что это не как независимая платформа Java.

Mono работает на другой платформе, потому что JIT есть в разных ОС.

Mono не вполне успешен в лунном свете (серебряный свет в .NET). Не только исследования продолжаются.

Mono использует сервер XSP2 или apache. Некоторые крупные компании используют этот проект. Некоторые из роботизированных проектов также работают на моно.

Больше подробностейhttp://www.mono-project.com/Main_Page.

1

Существует Mono Project от Novell, который позволит вам запускать ASP.Net на Apache.

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

10

Теперь вы можете опубликовать приложение ASP.NET 5 в Docker под Linux с помощью Visual Studio. Смотрите ниже пост от Скотта Хазелмана

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

Нет ли рабочего веб-сервера, который будет работать с ASP.NET 5, кроме Kestrel, который является только сервером разработки? Как это допустимый вариант без возможности размещения веб-сайта ASP.NET в Linux?
и контейнеры Docker для Windows запускаются только на Windows Server 16, так что это не имеет отношения к вопросу
3

DotNet является официальным домом .NET на GitHub. Это отличная отправная точка для поиска многих проектов .NET OSS от Microsoft и сообщества, включая многие из них, являющиеся частью .NET Foundation.

Это может быть отличным началом для поддержки Linux.

4

Ты можешь использоватьМоно для запуска приложений ASP.NET в Apache / Linux, однако он имеет ограниченное подмножество того, что вы можете делать под Windows. Что касается "они" сказать, что Windows более уязвима для атаки - это неправда. За последние пару лет у IIS было меньше проблем с безопасностью, чем у Apache, но в любом случае все сводится к администрированию коробок - обе ОС могут быть легко защищены. В наши дни точками атаки являются не ОС или программное обеспечение веб-сервера, а сами приложения.

ты имеешь в виду как ... серверы Linux также могут быть уязвимы для атак ??? Anand
@blowdart, щас взгляни на фейсбук беги на apachemakeuseof.com/tag/facebook-work-nuts-bolts-technology-explained
все может быть уязвимо. ничто не является безопасным, если оно не выключено и не отключено от сети
1

Проект Mono - ваш лучший вариант. Однако у него много подводных камней (например, неполная поддержка API в некоторых областях), и он юридически серый (такие люди, как Ричард Столлман, высмеивают использование Mono из-за возможности перехода Microsoft на Mono с использованием своих патентных прав). , но это уже другая история).

В любом случае, Apache поддерживает .NET / Mono через модуль, но в последний раз, когда я проверял версию, поставляемую с Debian, он предоставлял только поддержку языка Perl; Я не могу сказать, изменился ли он с тех пор, возможно, кто-то другой может исправить меня там.

5

Да мы можем. познакомиться сМоно Проект и читатьЭта статья для начала.

Будут ли все библиотеки правильно установлены вASP.Net web forms сMono вLinux среда?

Похожие вопросы