Запуск 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


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


12

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

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

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


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

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.


5

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


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

4

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

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

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


как насчет проблемы с антивирусом .. 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; Я не могу сказать, изменилось ли это с тех пор, возможно, кто-то другой поправит меня там.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.