Бегущий ASP.Net на сервере под управлением Linux



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



Java web applications (.JSP и сервлеты) может работать на многих серверных платформах.



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

560   13  

13 ответов:

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

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

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

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

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

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

обновление ASP.NET ядро 11/10/2017

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

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

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

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

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

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

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

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

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

Да, мы можем. познакомьтесь с Проект Моно и читать в этой статье начать.

для ASP.NET на Linux, проверьте моно.

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

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

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

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

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

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

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

Mono не полностью успешен в moonlight (silver light в .NET) .Не только исследования.

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

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

есть моно проект от Novell, который позволит вам запустить ASP.Net на апаче.

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

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

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

Comments

    Ничего не найдено.