Linux 기반 서버에서 ASP.Net 실행


89

Java 배경 지식이있는 개발자의 경우 ASP.NET 도구 / 플랫폼을 사용하여 소프트웨어 개발을 탐색하는 데 관심이 있습니다.

Java 웹 애플리케이션 (.jsp 및 서블릿)은 여러 서버 플랫폼에서 실행할 수 있습니다.

질문 : .NET 웹 애플리케이션이 Linux 기반 서버에서 실행될 수 있습니까? 웹앱 호스팅에 Windows 서버를 사용할 수없는 시나리오를 고려합니다.

답변:


70

사용중인 특정 .NET 기술에 따라 다릅니다. 모노 프로젝트 ASP.NET 사이트를 실행하기위한 아파치 모듈 (mod_mono)를 제공하고, 내가 수집 무엇에서 잘 작동합니다.

Mono는 모든 .NET API를 지원하지는 않습니다. 특히 WPF (그리고 아마도 WCF도 기억할 수 없습니다.)는 프레임 워크의 다른 많은 부분을 잘 지원합니다.

처음부터 시작하고 특히 Windows가 아닌 서버를 대상으로하려는 경우 프로젝트가 Mono에서 작동하는지 확인하는 것이 목표로하는 좋은 목표가 될 것입니다. 그러나 Mono에서 지원하지 않는 특정 API 또는 언어 기능이 필요한 경우 배포를 위해 Windows 서버를 사용해야합니다. 디자인 타임 / 아키텍처 선택은 우선해야합니다.


3
참고로, 모노 프로젝트 관리자는이 질문에 대한 답도 가지고 있습니다.
Joel Coehoorn

8
Mono 프로젝트에 익숙하지 않고 관리자 인 경우이 답변 이 Joel이 언급 한 것입니다.
alastairs

Linux 서버의 주요 PHP 웹 사이트와 통합하려는 asp.net 페이지가 있습니다. 가능할까요? 실제로 동일한 Linux 서버에서 php와 asp.net을 사용할 수 있습니까?
Hosein Aqajani

86

그래서 나는 이것이 오래된 질문이라는 것을 알고 있지만 업데이트 된 답변을 견딜 수 있다고 생각합니다.

마이크로 소프트는 공식적으로 asp.net vnext 와 오픈 소스를 출시 했으며 Linux와 Mac 모두에 배포 할 수 있습니다. 그것의 전부는 여전히 꽤 새롭지 만 모노의 최신 빌드에 의존하므로 현재는 컴파일이 필요 mono-framework하지만 시간이 지나면 다양한 리눅스 배포판이 모노의 업데이트 버전을 출시함에 따라 액세스하기가 더 쉬울 것이라고 생각합니다. 설정 방법 안내입니다.

이 정보는 다소 변동이있을 수 있으며 업데이트시 변경 될 수 있습니다.

ASP.NET CORE 업데이트 11/10/2017


현재 ASP.NET Core에서 지원하는 Linux 웹 서버는 무엇입니까?
MrCalvin


12

나는 경험으로 말할 수있다. ASP.net 웹 사이트가 Mono에서 지원하는 .NET 라이브러리 만 사용하더라도 Hello World를 넘어선 경우 실행하는 데 어려움을 겪을 것입니다.

많은 코드를 다시 작성할 필요는 없지만 mod_mono / xsp / apache 구성, 파일 권한 및 오류 처리 및 대규모 웹 사이트에 들어가는 모든 사소한 문제를 처리하는 데 몇 시간 / 일 / 주를 소비하게됩니다. (serverfault에 대해 질문하는 데 많은 시간을 할애 할 준비를하십시오. :))

문제는 많은 사람들이 ASP.net 웹 사이트에 Mono를 사용하지 않기 때문에 버그를보고하는 사람이 많지 않아 사소한 버그 인 많은 것들이 오랫동안 수정되지 않은 상태가된다는 것입니다.


저도 같은 생각을했고 실제 프로젝트에서 저 자신에 직면했습니다.
Eslam Hamouda 2015-08-17

10

이제 Visual Studio를 사용하여 Linux의 Docker에 ASP.NET 5 앱을 게시 할 수 있습니다. Scott Haselman의 아래 게시물을 참조하십시오.

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


개발 서버 인 Kestrel을 제외하고 ASP.NET 5에서 작동하는 프로덕션 웹 서버가 없습니까? Linux에서 ASP.NET 웹 사이트를 호스팅하는 방법이없는 유효한 옵션은 무엇입니까?
Chris Hawkes

1
이 질문에 관련이없는, 그래서 창문에 대한 고정 표시기 용기 빌드는 윈도우 서버 (16)에서만 실행
조슬린



4

Linux의 ASP.NET의 경우 Mono를 확인하십시오 .

즉, 수천 개의 사이트가 문제없이 Windows Server에서 실행됩니다. 모든 OS에서 잘못 구성된 서버는 취약합니다. Linux는 열악한 관리자로부터 당신을 구할 수 없습니다.

따라서 ASP.NET 앱을 개발하는 "모범 사례"는 Windows Server 2008 (예 : 웹 버전)을 사용하는 것입니다. 그리고 훌륭한 관리자를 고용하십시오.


바이러스 백신 문제는 어떨까요 .. Windows에는 바이러스 백신 소프트웨어가 필요합니다 .. 서버 측 영역의 비용이 증가 할 것이라고 생각합니다. 맞습니까?
Anand

안티 바이러스 제품의 대부분의 "서버"버전은 주로 예상되는 사용으로 인해 "데스크톱"버전보다 더 비싸며 종종 몇 배 더 비쌉니다. AVG (www.avg.com), ESET (www.eset.com) 또는 Computer Associates (www.ca.com)를 권장합니다.
devstuff

4

Mono 를 사용 하여 Apache / Linux에서 ASP.NET 응용 프로그램을 실행할 수 있지만 Windows에서 수행 할 수있는 작업의 하위 집합이 제한되어 있습니다. Windows가 공격에 더 취약하다고 말하는 "그들"은 사실이 아닙니다. IIS는 아파치보다 지난 몇 년 동안 보안 문제가 적었지만, 두 가지 OS 모두 쉽게 보안을 유지할 수 있습니다. 요즘 공격 지점은 OS 나 웹 서버 소프트웨어가 아니라 애플리케이션 자체입니다.


3
어떤 것이 든 취약 할 수 있습니다. 이 꺼져 있고 네트워크에 연결하지 않는 이상 아무것도 안전하지 않습니다
blowdart

@blowdart, 지금 아파치에서 실행되는 페이스 북을 살펴보세요 makeuseof.com/tag/facebook-work-nuts-bolts-technology-explained
Anirudha Gupta

3

dotnet 은 GitHub에서 .NET의 공식 홈입니다. .NET Foundation의 일부인 많은 프로젝트를 포함하여 Microsoft 및 커뮤니티에서 제공하는 많은 .NET OSS 프로젝트를 찾을 수있는 좋은 출발점입니다.

이것은 Linux를 지원하는 좋은 시작일 수 있습니다.


2

이제 .Net은 Linux, Mac OS 등과 같은 여러 플랫폼에서 실행되지만 Mono는 완전히 플랫폼 독립적이지 않습니다. .NET을 다른 OS에 배포하려면 타사 소프트웨어가 필요하므로 Java 플랫폼과는 다릅니다.

Mono는 JIT가 다른 OS에 있기 때문에 다른 플랫폼에서 실행됩니다.

모노는 달빛 (.NET의 은빛)에서 완전히 성공하지 못합니다.

Mono는 XSP2 서버 또는 아파치를 사용합니다. 일부 대기업은이 프로젝트를 사용하고 있으며 로봇 프로젝트 중 일부는 모노로도 실행되고 있습니다.

자세한 내용은 http://www.mono-project.com/Main_Page .



1

Mono 프로젝트가 최선의 선택입니다. 그러나 (일부 영역에서 불완전한 API 지원과 같은) 많은 함정이 있으며 법적으로 회색입니다 (Richard Stallman과 같은 사람들은 Microsoft가 특허권을 사용하여 Mono를 사용할 가능성이 있기 때문에 Mono 사용을 조롱했지만 그것은 또 다른 이야기입니다).

어쨌든 아파치는 모듈을 통해 .NET / Mono를 지원하지만, 마지막으로 데비안과 함께 제공되는 버전을 확인했을 때 Perl 언어 만 지원했습니다. 다른 사람이 나를 고칠 수 있기 때문에 변경되었는지 말할 수 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.