Esecuzione di ASP.Net su un server basato su Linux


89

Per uno sviluppatore con un background Java, mi interessa esplorare lo sviluppo di software utilizzando anche gli strumenti / la piattaforma ASP.NET.

Le applicazioni web Java (.jsp e servlet) possono essere eseguite su molte piattaforme server.

Domanda : un'applicazione web .NET potrà essere eseguita su un server basato su Linux? Considerando lo scenario di non essere in grado di utilizzare un server Windows per ospitare un'app Web.

Risposte:


69

Dipende dalle tecnologie .NET specifiche che stai utilizzando. Il Mono Project fornisce un modulo Apache (mod_mono) per l'esecuzione di siti ASP.NET e da quanto ho capito funziona bene.

Mono non supporta tutte le API .NET, tuttavia, in particolare WPF (e forse anche WCF, non ricordo), ma fornisce un buon supporto per molto altro del framework.

Se stai partendo da zero e desideri in particolare scegliere come target server non Windows, assicurarti che il tuo progetto funzioni con Mono sarebbe un buon obiettivo a cui mirare. Tuttavia, se sono necessarie API o funzionalità linguistiche particolari non supportate da Mono, sarà necessario utilizzare un server Windows per la distribuzione. È una scelta progettuale / architettonica che dovrebbe essere anticipata.


3
Cordiali saluti, il manutentore del progetto mono ha una risposta anche a questa domanda.
Joel Coehoorn

8
Se non hai familiarità con il progetto Mono e con i suoi manutentori, questa risposta è quella a cui si riferisce Joel.
alastairs

Ho una pagina asp.net che desidero integrare con il sito Web principale di php in un server Linux. È possibile? In effetti, è possibile avere php e asp.net su uno stesso server Linux?
Hosein Aqajani

86

Quindi so che questa è una domanda più vecchia, ma penso che potrebbe sopportare una risposta aggiornata.

Microsoft ha ufficialmente rilasciato asp.net vnext e il suo open source e in grado di distribuire sia su Linux che su Mac. È tutto ancora abbastanza nuovo, ma si basa sulle ultime build di mono e quindi attualmente ha bisogno che tu compili il mono-frameworkma col tempo sospetto che sarà più facile accedervi poiché varie distribuzioni Linux rilasciano versioni aggiornate di mono. Questa è una guida alla configurazione

Queste informazioni potrebbero essere alquanto volatili e con gli aggiornamenti sono dovute modifiche.

Aggiorna ASP.NET CORE 11/10/2017


Ad oggi, quali server web Linux sono supportati da ASP.NET Core?
MrCalvin


12

Posso parlare per esperienza. Anche se il tuo sito Web ASP.net utilizza solo librerie .NET supportate da Mono, avrai difficoltà a farlo funzionare se è qualcosa al di là di Hello World.

Non dovrai riscrivere molto codice ma trascorrerai ore / giorni / settimane a gestire piccoli problemi con la configurazione di mod_mono / xsp / apache, i permessi dei file e la gestione degli errori e tutte le piccole cose che entrano in un grande sito web. (Preparati a dedicare molto tempo a fare domande su serverfault :))

Il problema è che molte persone non usano Mono per i siti Web ASP.net e quindi non ci sono molte persone che segnalano bug, quindi molte cose che sono bug minori non vengono risolte per molto tempo.


Lo ammetto, stavo avendo gli stessi pensieri e l'ho affrontato io stesso in un progetto reale.
Eslam Hamouda




4

Per ASP.NET su Linux, controlla Mono .

Detto questo, migliaia di siti funzionano su Windows Server senza problemi. Un server mal configurato con qualsiasi sistema operativo sarà vulnerabile; Linux non ti salverà da un amministratore povero.

Quindi immagino che la mia "migliore pratica" per distribuire un'app ASP.NET sarebbe quella di utilizzare Windows Server 2008 (probabilmente edizione Web). E assumi un buon amministratore.


per quanto riguarda il problema antivirus .. Windows richiede un software antivirus .. penso che aumenterà il costo dell'area lato server .. ho ragione?
Anand

La maggior parte delle edizioni "server" dei prodotti antivirus sono più costose delle edizioni "desktop", spesso molte volte di più, principalmente a causa dell'utilizzo previsto. Consiglierei AVG (www.avg.com), ESET (www.eset.com) o Computer Associates (www.ca.com).
devstuff

4

Puoi usare Mono per eseguire applicazioni ASP.NET su Apache / Linux, tuttavia ha un sottoinsieme limitato di ciò che puoi fare in Windows. Quanto a "loro" che dicono che Windows è più vulnerabile agli attacchi, non è vero. IIS ha avuto meno problemi di sicurezza negli ultimi due anni rispetto ad Apache, ma in entrambi i casi dipende tutto dall'amministrazione delle scatole: entrambi i sistemi operativi possono essere facilmente protetti. Al giorno d'oggi i punti di attacco non sono il sistema operativo o il software del server web, ma le applicazioni stesse.


3
qualsiasi cosa potrebbe essere vulnerabile. niente è sicuro a meno che non sia spento e disconnesso dalla rete
blowdart

@blowdart, In questo momento dai un'occhiata su facebook eseguito su apache makeuseof.com/tag/facebook-work-nuts-bolts-technology-explained
Anirudha Gupta

3

dotnet è la home page ufficiale di .NET su GitHub. È un ottimo punto di partenza per trovare molti progetti .NET OSS di Microsoft e della comunità, inclusi molti che fanno parte di .NET Foundation.

Questo potrebbe essere un ottimo inizio per supportare Linux.


2

Ora un giorno .Net viene eseguito su più piattaforme, come Linux, Mac os ecc. Ma mono non è completamente indipendente dalla piattaforma, perché per distribuire .NET in un altro sistema operativo richiede software di terze parti. Quindi non è indipendente dalla piattaforma Java.

Mono è in esecuzione su piattaforme diverse, perché JIT è presente in sistemi operativi diversi.

Mono non ha pieno successo al chiaro di luna (luce argentata in .NET) .Non solo la ricerca è in corso.

Mono utilizza il server XSP2 o apache. alcune delle grandi aziende stanno utilizzando questo progetto, alcuni dei progetti robotici sono anche in esecuzione in mono.

Per maggiori dettagli http://www.mono-project.com/Main_Page .



1

Il progetto Mono è la tua migliore opzione. Tuttavia, ha molte insidie ​​(come il supporto API incompleto in alcune aree) ed è legalmente grigio (persone come Richard Stallman hanno deriso l'uso di Mono a causa della possibilità che Microsoft scenda su Mono utilizzando i suoi diritti di brevetto, ma questa è un'altra storia).

Ad ogni modo, Apache supporta .NET / Mono tramite un modulo, ma l'ultima volta che ho controllato la versione fornita con Debian, ha fornito solo il supporto per il linguaggio Perl; Non posso dire se è cambiato da allora, forse qualcun altro può correggermi lì.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.