IT story

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

hot-time 2020. 9. 6. 12:04
반응형

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


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

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

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


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

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

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


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

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

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

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


Windows 개발자가 코드를 Mono / Linux로 이식하는 데 도움이되는이 가이드를 고려할 수 있습니다.

가이드 : ASP.NET 응용 프로그램 포팅-Mono


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

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

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


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

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


기술이 발전하고이 질문이 Google에서 최상위 순위에 있기 때문에 Linux 및 Windows에서 프로덕션 및 Linux 용 개발을 위해 실행하기 위해 asp.net을 완전히 재 작성한 새로운 asp.net 코어를 모노를 넘어 포함해야합니다. , Windows 및 Mac :

Windows, Mac 및 Linux에서 플랫폼 간 ASP.NET Core 앱을 개발하고 실행할 수 있습니다. ASP.NET Core는 GitHub의 오픈 소스입니다.


응 우리는 할 수있어. Mono Project에 익숙해 지고이 기사읽고 시작하십시오.


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

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

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


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


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

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


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

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

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

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

For more details http://www.mono-project.com/Main_Page.


There is the Mono Project from Novell that will allow you to run ASP.Net on Apache.

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


The Mono project is your best option. However, it has a lot of pitfalls (like incomplete API support in some areas), and it's legally gray (people like Richard Stallman have derided the use of Mono because of the possibility of Microsoft coming down on Mono by using its patent rights, but that's another story).

Anyway, Apache supports .NET/Mono through a module, but the last time I checked the version supplied with Debian, it gave Perl language support only; I can't say if it's changed since, perhaps someone else can correct me there.

참고URL : https://stackoverflow.com/questions/1116175/running-asp-net-on-a-linux-based-server

반응형