Запуск ASP.Net на сервере на базе Linux

89

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

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

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

Ананд
источник

Ответы:

70

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

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

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

Аластерс
источник
3
кстати, у сопровождающего монопроекта есть ответ и на этот вопрос.
Джоэл Кохорн, 02
8
Если вы не знакомы с проектом Mono и его сопровождающими, то именно этот ответ имеет в виду Джоэл.
alastairs
У меня есть страница asp.net, которую я хочу интегрировать с основным веб-сайтом php на сервере Linux. Является ли это возможным? Действительно, возможно ли иметь php и asp.net на одном сервере Linux?
Хосейн Акаджани
86

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

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

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

Обновление ASP.NET CORE 11.10.2017

Terrance
источник
Какие веб-серверы Linux на сегодняшний день поддерживаются ASP.NET Core?
MrCalvin
12

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

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

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

thelsdj
источник
Признаюсь, у меня были те же мысли, и я сам столкнулся с ними на реальном проекте.
Эслам Хамуда
10

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

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

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

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

Вы можете разрабатывать и запускать кроссплатформенные приложения ASP.NET Core в Windows, Mac и Linux. ASP.NET Core имеет открытый исходный код на GitHub.

Mqueirozcorreia
источник
5

Да мы можем. познакомьтесь с Mono Project и прочтите эту статью, чтобы начать работу.

dde
источник
Будут ли все библиотеки , установленные должным образом в веб - форм ASP.Net с Monoв Linux среде?
Raja
4

Для ASP.NET в Linux проверьте Mono .

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

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

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

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

удар
источник
3
все могло быть уязвимо. ничто не является безопасным, если оно не выключено и не отсоединено от сети
blowdart
@blowdart, прямо сейчас взгляните на фейсбук
Gupta
3

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

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

Куркула
источник
2

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

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

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

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

Для получения дополнительной информации http://www.mono-project.com/Main_Page .

аниш
источник
1

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

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

Бен
источник