Запуск ASP.Net на сервері під управлінням Linux


89

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

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

Питання : Чи зможе веб-програма .NET працювати на сервері під управлінням Linux? Розглядаючи сценарій неможливості використання сервера Windows для розміщення веб-програми.

Відповіді:


69

Це залежить від того, які конкретні .NET-технології ви використовуєте. Проект Mono пропонує модуль Apache (mod_mono) для запуску сайтів ASP.NET, і, на мою думку, він працює добре.

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

Якщо ви починаєте з нуля і особливо хочете орієнтуватись на сервери, які не є Windows, тоді гарною метою буде забезпечити роботу вашого проекту з Mono. Однак, якщо вам потрібні певні API або мовні функції, які не підтримуються Mono, тоді вам доведеться використовувати сервер Windows для розгортання. Це вибір дизайну / архітектури, який повинен скласти фронт.


3
fyi, співробітник монопроекту також має відповідь на це питання.
Joel Coehoorn,

8
Якщо ви не знайомі з проектом Mono та його супровідниками, ця відповідь - це та, на яку посилається Джоел.
alastairs

У мене є сторінка asp.net, яку я хочу інтегрувати з основним веб-сайтом php на сервері Linux. Це можливо? Дійсно, чи можна мати php та asp.net на одному сервері Linux?
Хосейн Акаджані

86

Отже, я знаю, що це давнє запитання, але я думаю, що воно може дати оновлену відповідь.

Корпорація Майкрософт офіційно випустила asp.net vnext та відкритий код, який можна розгорнути як на Linux, так і на Mac. Все це все ще досить нове, але все-таки покладається на останні збірки моно, і, отже, наразі потрібно, щоб ви скомпілювали, mono-frameworkале з часом я підозрюю, що доступ до нього буде простішим, оскільки різні дистрибутиви Linux випускають оновлені версії моно. Це інструкція з налаштування

Ця інформація може бути дещо нестабільною, і з оновленнями це може бути змінено.

Оновіть ASP.NET CORE 10.11.2017


На сьогоднішній день, які веб-сервери Linux підтримуються ASP.NET Core?
MrCalvin 13.03.18


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
і контейнери docker, побудовані для Windows, працюють лише на Windows Server 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 середовищі?
Раджа

4

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

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

Отже, я вважаю, що моєю "найкращою практикою" для відхилення програми ASP.NET було б використання Windows Server 2008 (ймовірно, веб-видання). І найняти хорошого адміністратора.


як щодо антивірусної проблеми .. Windows вимагає антивірусного програмного забезпечення .. я думаю, що це збільшить вартість зони на стороні сервера .. я так?
Ананд

Більшість "серверних" видань антивірусних продуктів є дорожчими, ніж їх "настільні", часто в кілька разів дорожче, головним чином через очікуване використання. Я рекомендую 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, Зараз погляньте на facebook, запущений на apache makeuseof.com/tag/facebook-work-nuts-bolts-technology-explained
Anirudha Gupta

3

dotnet - офіційний дім .NET на GitHub. Це чудова відправна точка для пошуку багатьох проектів .NET OSS від корпорації Майкрософт та спільноти, в тому числі багатьох, які є частиною .NET Foundation.

Це може бути чудовим початком підтримки Linux.


2

Зараз day .Net працює на декількох платформах, таких як Linux, Mac OS тощо, але mono не є повністю незалежним від платформи, оскільки для розгортання .NET в іншій ОС потрібне програмне забезпечення третьої сторони. Тому це не схоже на незалежну платформу Java.

Mono працює на різній платформі, тому що JIT є в різних ОС.

Mono не є повною мірою успіхом у місячному світлі (срібне світло у .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.