your programing

리눅스 기반 서버에서 ASP.Net 실행

lovepro 2023. 6. 11. 21:19
반응형

리눅스 기반 서버에서 ASP.Net 실행

Java 배경을 가진 개발자의 경우 ASP.NET 도구/플랫폼을 사용한 소프트웨어 개발에도 관심이 있습니다.

Java 웹 응용프로그램(.jsp 및 servlet)은 많은 서버 플랫폼에서 실행될 수 있습니다.

질문:.NET 웹 응용 프로그램이 Linux 기반 서버에서 실행될 수 있습니까?웹 앱 호스팅을 위해 Windows 서버를 사용할 수 없는 시나리오를 고려합니다.

그래서 저는 이것이 오래된 질문이라는 것을 알지만, 저는 그것이 최신 답변을 견딜 수 있다고 생각합니다.

Microsoft는 공식적으로 asp.net vnext와 오픈 소스를 출시했으며 Linux와 Mac 모두에 배포할 수 있습니다.그것은 모두 여전히 꽤 새로운 것이지만 모노의 최신 빌드에 의존하기 때문에 현재 당신이 컴파일해야 합니다.mono-framework하지만 시간이 지나면 다양한 리눅스 배포자들이 mono의 업데이트된 버전을 출시하기 때문에 접근하기가 더 쉬울 것이라고 생각합니다.이것은 설정 방법 가이드입니다.

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

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

  • asp.net vnext는 이제 asp.net core로 알려져 있습니다.
  • asp.net 코어는 마이크로서비스 아키텍처, 도커컨테이너 기술과 함께 사용되기 때문에 Microsoft에서 높은 우선순위로 취급되고 있습니다.
  • .net 표준 2.0으로 인해 기존 .net 라이브러리와 훨씬 더 호환됩니다.
  • go 및 node.js와 같은 다른 기술 스택과 비교할 때 성능이 우수합니다.

사용 중인 특정 .NET 기술에 따라 다릅니다.Mono Project는 ASP.NET 사이트를 실행하기 위한 Apache 모듈(mod_mono)을 제공하며, 제가 수집한 바로는 잘 작동합니다.

그러나 Mono는 모든 .NET API를 지원하지는 않지만 특히 WPF(WCF도 지원할 수 있음, 기억이 나지 않음), 다른 많은 프레임워크에 대해 좋은 지원을 제공합니다.

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

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

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

저는 경험을 통해 말할 수 있습니다.ASP.net 웹 사이트가 Mono에서 지원하는 .NET 라이브러리만 사용하더라도 Hello World 이상의 기능을 사용할 경우 실행하는 데 어려움을 겪을 것입니다.

코드를 많이 다시 작성할 필요는 없지만 mod_mono/xsp/apache 구성, 파일 권한 및 오류 처리와 같은 사소한 문제를 처리하는 데 몇 시간/일/주가 소요됩니다.(서버 장애에 대한 질문에 많은 시간을 할애할 수 있도록 준비하세요 :)

문제는 많은 사람들이 ASP.net 웹사이트에서 Mono를 사용하지 않기 때문에 버그를 보고하는 사람들이 많지 않기 때문에 사소한 버그들이 오랫동안 해결되지 않는다는 것입니다.

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

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

기술이 발전하고 구글에서 이 질문이 상위권에 올랐기 때문에 모노를 넘어 새로운 asp.net 코어를 포함해야 합니다. 이 코어는 Linux Windows에서 운영되고 Linux, Windows 및 Mac용 개발을 위해 실행되는 asp.net 을 완전히 다시 작성한 것입니다.

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

네, 가능합니다.Mono Project에 익숙해지고기사를 읽고 시작하십시오.

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

즉, 수천 개의 사이트가 윈도우즈 서버에서 아무런 문제 없이 실행됩니다.OS가 제대로 구성되지 않은 서버는 취약할 수 있습니다. Linux는 제대로 관리되지 않는 서버를 보호하지 못합니다.

따라서 ASP.NET 앱을 배포하는 "베스트 프랙티스"는 Windows Server 2008(Web 버전일 가능성이 있음)을 사용하는 것입니다.그리고 좋은 관리자를 고용하세요.

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

닷넷은 깃허브에 있는 닷넷의 공식 홈입니다.Microsoft 및 커뮤니티에서 제공하는 많은 .NET OSS 프로젝트를 찾을 수 있는 좋은 출발점입니다. 여기에는 .NET Foundation의 일부이기도 합니다.

이것은 Linux를 지원하기 위한 훌륭한 시작이 될 수 있습니다.

요즘 들어.Net은 Linux, Macos 등과 같은 여러 플랫폼에서 실행되지만 mono는 플랫폼에 완전히 독립적이지 않습니다. 다른 OS에 .NET을 설치하려면 타사 software.so 에 .NET을 설치해야 하기 때문에 Java 플랫폼에 독립적이지 않습니다.

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

모노는 달빛(.NET의 은색 빛)에서 완전히 성공하지 못합니다.연구만 진행되는 것이 아닙니다.

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

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

Apache에서 ASP.Net을 실행할 수 있는 Novell의 Mono 프로젝트가 있습니다.

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

모노 프로젝트가 최선의 선택입니다.하지만 (일부 지역의 불완전한 API 지원과 같은) 많은 함정이 있으며, 법적으로 회색입니다(Richard Stallman과 같은 사람들은 마이크로소프트가 특허권을 사용하여 모노를 공격할 가능성 때문에 모노의 사용을 비웃었지만, 그것은 다른 이야기입니다).

어쨌든 Apache는 지원합니다.모듈을 통해 NET/Mono를 확인했지만, 마지막으로 Debian과 함께 제공된 버전을 확인했을 때 Perl 언어 지원만 제공했습니다. 그 이후로 변경되었는지 여부는 말할 수 없습니다. 아마도 다른 사람이 수정할 수 있을 것입니다.

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

반응형