Menjalankan ASP.Net di server berbasis Linux

89

Untuk pengembang dengan latar belakang Java, saya tertarik untuk menjelajahi pengembangan perangkat lunak menggunakan alat / platform ASP.NET juga.

Aplikasi web Java (.jsp dan servlet) dapat berjalan di banyak platform server.

Pertanyaan : Apakah aplikasi web .NET dapat berjalan di server berbasis Linux? Mempertimbangkan skenario tidak dapat menggunakan server Windows untuk menghosting aplikasi web.

Anand
sumber

Jawaban:

70

Itu tergantung pada teknologi .NET spesifik yang Anda gunakan. The Mono Project menyediakan modul Apache (mod_mono) untuk menjalankan situs ASP.NET, dan dari apa yang saya kumpulkan itu bekerja dengan baik.

Mono tidak mendukung semua .NET API, meskipun - terutama WPF (dan mungkin WCF juga, saya tidak ingat) - tetapi Mono memberikan dukungan yang baik untuk banyak kerangka lainnya.

Jika Anda memulai dari awal dan secara khusus ingin menargetkan server non-Windows, memastikan proyek Anda berfungsi dengan Mono akan menjadi tujuan yang baik untuk dicapai. Namun, jika Anda memerlukan API atau fitur bahasa tertentu yang tidak didukung oleh Mono, maka Anda perlu menggunakan server Windows untuk penyebaran. Ini adalah pilihan desain-waktu / arsitektur yang harus dibuat di depan.

alastairs
sumber
3
Perlu diketahui, pengelola proyek mono memiliki jawaban untuk pertanyaan ini juga.
Joel Coehoorn
8
Jika Anda tidak terbiasa dengan proyek Mono dan pengelolanya, jawaban ini adalah yang dirujuk oleh Joel.
alastairs
Saya memiliki halaman asp.net yang ingin saya integrasikan dengan situs web php utama di server linux. Apa itu mungkin? Memang, mungkinkah memiliki php dan asp.net di server linux yang sama?
Hosein Aqajani
86

Jadi saya tahu ini adalah pertanyaan yang lebih lama tetapi saya pikir itu bisa menjadi jawaban yang diperbarui.

Microsoft telah secara resmi merilis asp.net vnext dan open source-nya serta dapat digunakan untuk Linux dan Mac. Semuanya masih cukup baru tetapi bergantung pada versi terbaru dari mono dan karena itu saat ini Anda perlu mengkompilasi mono-frameworktetapi pada waktunya saya curiga akan lebih mudah untuk mengakses karena berbagai distro linux merilis versi terbaru dari mono. Ini adalah panduan cara menyiapkan

Informasi ini mungkin agak tidak stabil dan dengan pembaruan akan berubah.

Perbarui ASP.NET CORE 11/10/2017

2 revs
sumber
Saat ini, server web linux apa yang didukung oleh ASP.NET Core?
MrCalvin
12

Saya bisa berbicara dari pengalaman. Bahkan jika situs ASP.net Anda hanya menggunakan pustaka .NET yang didukung oleh Mono, Anda akan mengalami kesulitan untuk menjalankannya jika tidak ada yang melebihi Hello World.

Anda tidak perlu menulis ulang banyak kode tetapi Anda akan menghabiskan berjam-jam / hari / minggu berurusan dengan masalah kecil dengan konfigurasi mod_mono / xsp / apache dan izin file dan penanganan kesalahan dan semua hal kecil yang masuk ke situs web besar. (Bersiaplah untuk menghabiskan banyak waktu mengajukan pertanyaan di serverfault :))

Masalahnya adalah banyak orang tidak menggunakan Mono untuk situs web ASP.net dan karenanya tidak banyak orang yang melaporkan bug sehingga banyak hal yang merupakan bug minor tidak diperbaiki untuk waktu yang lama.

thelsdj
sumber
Saya akui, saya memiliki pemikiran yang sama dan menghadapinya sendiri dalam proyek nyata.
Eslam Hamouda
10

Sekarang Anda dapat mempublikasikan aplikasi ASP.NET 5 ke Docker di Linux dengan Visual Studio. Lihat posting di bawah ini dari Scott Haselman

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

Tepu
sumber
Apakah tidak ada server web produksi yang akan bekerja dengan ASP.NET 5 kecuali Kestrel yang hanya merupakan server pengembangan? Bagaimana ini merupakan opsi yang valid tanpa cara menghosting situs web ASP.NET di Linux?
Chris Hawkes
1
dan kontainer buruh pelabuhan yang dibangun untuk windows hanya berjalan di windows server 16 jadi tidak relevan dengan pertanyaannya
jocelyn
10

Karena teknologi berkembang dan pertanyaan ini menduduki peringkat teratas di Google, kami perlu menyertakan di luar mono inti asp.net baru, yang merupakan penulisan ulang lengkap asp.net untuk dijalankan untuk produksi di Linux dan Windows dan untuk pengembangan untuk Linux , Windows dan Mac :

Anda dapat mengembangkan dan menjalankan aplikasi ASP.NET Core lintas platform di Windows, Mac, dan Linux. ASP.NET Core adalah open source di GitHub.

mqueirozcorreia.dll
sumber
5

Ya kita bisa. kenali Mono Project dan baca artikel ini untuk memulai.

dde
sumber
Akankah semua Perpustakaan diatur dengan benar di formulir web ASP.Net dengan Monodi lingkungan Linux ?
Raja
4

Untuk ASP.NET di Linux, lihat Mono .

Yang mengatakan, ribuan situs berjalan di Windows Server tanpa masalah apa pun. Server yang tidak dikonfigurasi dengan baik dengan OS apa pun akan rentan; Linux tidak akan menyelamatkan Anda dari admin yang buruk.

Jadi saya kira "praktik terbaik" saya untuk menerapkan aplikasi ASP.NET adalah menggunakan Windows Server 2008 (kemungkinan edisi Web). Dan pekerjakan seorang administrator yang baik.

dahlbyk.dll
sumber
bagaimana dengan masalah antivirus .. windows membutuhkan software antivirus .. saya pikir itu akan meningkatkan biaya area sisi server .. benar kan?
Anand
Kebanyakan produk anti-virus edisi "server" lebih mahal daripada edisi "desktop" mereka, seringkali beberapa kali lebih mahal, terutama karena penggunaan yang diharapkan. Saya akan merekomendasikan AVG (www.avg.com), ESET (www.eset.com), atau Computer Associates (www.ca.com).
devstuff
4

Anda dapat menggunakan Mono untuk menjalankan aplikasi ASP.NET di Apache / Linux, namun Mono memiliki subset terbatas dari apa yang dapat Anda lakukan di Windows. Adapun "mereka" mengatakan Windows lebih rentan terhadap serangan - itu tidak benar. IIS memiliki lebih sedikit masalah keamanan selama beberapa tahun terakhir dibandingkan Apache, tetapi dalam kedua kasus itu semua tergantung pada administrasi kotak - kedua OS dapat dengan mudah diamankan. Hari-hari ini titik serangan bukanlah OS atau perangkat lunak server web, tetapi aplikasi itu sendiri.

blowdart
sumber
3
apapun bisa menjadi rentan. tidak ada yang aman kecuali dimatikan dan diputuskan dari jaringan
blowdart
@blowdart, Sekarang lihat di facebook dijalankan di apache makeuseof.com/tag/facebook-work-nuts-bolts-technology-explained
Anirudha Gupta
3

dotnet adalah rumah resmi .NET di GitHub. Ini adalah titik awal yang bagus untuk menemukan banyak proyek .NET OSS dari Microsoft dan komunitas, termasuk banyak yang merupakan bagian dari .NET Foundation.

Ini mungkin awal yang baik untuk mendukung Linux.

Kurkula
sumber
2

Sekarang hari .Net dijalankan di berbagai platform, seperti linux, Mac os dll tetapi mono tidak sepenuhnya platform independen, Karena untuk menyebarkan .NET di OS lain diperlukan perangkat lunak pihak ketiga. Jadi tidak seperti platform java independen.

Mono berjalan di platform yang berbeda, karena JIT ada di os yang berbeda.

Mono tidak sepenuhnya sukses dalam cahaya bulan (cahaya perak di .NET). Tidak hanya Penelitian yang sedang berlangsung.

Mono menggunakan server atau apache XSP2. beberapa perusahaan besar menggunakan proyek ini, beberapa proyek robotik juga berjalan dengan mono.

Untuk detail lebih lanjut http://www.mono-project.com/Main_Page .

anishMarokey
sumber
1

Proyek Mono adalah pilihan terbaik Anda. Namun, ini memiliki banyak jebakan (seperti dukungan API yang tidak lengkap di beberapa area), dan secara hukum abu-abu (orang-orang seperti Richard Stallman telah mencemooh penggunaan Mono karena kemungkinan Microsoft menjatuhkan Mono dengan menggunakan hak patennya, tetapi itu cerita lain).

Bagaimanapun, Apache mendukung .NET / Mono melalui modul, tetapi terakhir kali saya memeriksa versi yang disertakan dengan Debian, itu hanya memberikan dukungan bahasa Perl; Saya tidak dapat mengatakan apakah itu berubah sejak itu, mungkin orang lain dapat mengoreksi saya di sana.

Ben
sumber