LinuxベースのサーバーでASP.Netを実行する


89

Javaの背景を持つ開発者のために、ASP.NETツール/プラットフォームを使用したソフトウェア開発の調査にも興味があります。

Java Webアプリケーション(.jspおよびサーブレット)は、多くのサーバープラットフォームで実行できます。

質問:Linuxベースのサーバーで.NET Webアプリケーションを実行できますか?WebサーバーをホストするためにWindowsサーバーを使用できないシナリオを検討します。

回答:


69

使用している特定の.NETテクノロジによって異なります。モノラルプロジェクトは、 ASP.NETのサイトを実行するためのApacheモジュール(mod_mono)を提供し、私が集めるものから、それがうまく動作します。

ただし、Monoはすべての.NET APIをサポートしているわけではありませんが、特にWPF(そしておそらくWCFも覚えていない)ですが、他の多くのフレームワークに対しては十分なサポートを提供しています。

最初から始めて、特にWindows以外のサーバーをターゲットにする場合は、プロジェクトがMonoで動作することを確認することを目標とすることをお勧めします。ただし、Monoでサポートされていない特定のAPIまたは言語機能が必要な場合は、Windowsサーバーを使用して展開する必要があります。これは、設計時またはアーキテクチャ上の選択であり、最初に構成する必要があります。


3
fyi、monoプロジェクトのメンテナーもこの質問に答えを持っています。
Joel Coehoorn、2009年

8
Monoプロジェクトに精通しておらず、メンテナでもある場合、この答えはJoelが言及しているものです。
alastairs 2012

Linuxサーバーのメインのphp Webサイトと統合したいasp.netページがあります。出来ますか?実際、同じLinuxサーバー上にphpとasp.netを配置することは可能ですか?
Hosein Aqajani 2016

86

だから私はこれが古い質問であることを知っていますが、私はそれが更新された答えに耐えられると思います。

マイクロソフトはasp.net vnextとそのオープンソースを正式にリリースし、LinuxとMacの両方に展開できます。そのすべてはかなり新しいですが、最新のモノのビルドに依存しているため、現在コンパイルする必要がありますmono-frameworkが、やがて、さまざまなLinuxディストリビューションがモノの更新バージョンをリリースするため、より簡単にアクセスできるようになると思います。セットアップ方法ガイドです

この情報は多少変動する可能性があり、更新は変更によるものです。

ASP.NET CORE 11/10/2017を更新


現在、ASP.NET CoreでサポートされているLinux Webサーバーは何ですか?
MrCalvin 2018年


12

私は経験から話すことができます。ASP.net WebサイトがMonoでサポートされている.NETライブラリのみを使用している場合でも、Hello Worldを超えるものを実行するのは困難です。

多くのコードを書き直す必要はありませんが、mod_mono / xsp / apacheの構成とファイルのアクセス許可とエラー処理、および大規模なWebサイトに入るすべての小さな問題に対処するために、数時間/数日/数週間を費やします。(serverfaultについて質問するのに多くの時間を費やす準備をしてください:))

問題は、多くの人がMono for ASP.netのWebサイトを使用していないため、バグを報告する人が少ないため、マイナーなバグの多くが長い間修正されないままになっていることです。


私は同じ考えを持っていて、実際のプロジェクトで自分自身に直面したことを認めます。
Eslam Hamouda 2015

10

これで、Visual Studioを使用してLinux上のDockerにASP.NET 5アプリを公開できます。Scott Haselmanからの以下の投稿を参照してください

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


開発サーバーのみであるKestrelを除いて、ASP.NET 5で動作する運用Webサーバーはありませんか?LinuxでASP.NET Webサイトをホストする方法がない場合、これはどのように有効なオプションですか?
Chris Hawkes

1
Dockerコンテナは、Windowsサーバー16でのみ実行されるWindows用にビルドされているため、質問には関係ありません
jocelyn

10

テクノロジーが進化し、この質問がグーグルで上位にランクされているので、モノを超えて新しいasp.netコアを含める必要があります。これは、asp.netを完全に書き直したもので、LinuxとWindowsでの運用とLinuxの開発で実行されます。 、WindowsおよびMac

Windows、Mac、LinuxでクロスプラットフォームのASP.NET Coreアプリを開発して実行できます。ASP.NET CoreはGitHubのオープンソースです。



4

Linux上のASP.NETについては、Monoをチェックしてください。

つまり、何千ものサイトがWindows Server上で問題なく実行されています。OSが適切に構成されていないサーバーは脆弱です。Linuxは貧弱な管理者からあなたを救うことはありません。

したがって、ASP.NETアプリを提供するための "ベストプラクティス"は、Windows Server 2008(おそらくWebエディション)を使用することだと思います。そして、良い管理者を雇います。


ウイルス対策の問題はどうですか。Windowsにはウイルス対策ソフトウェアが必要です。サーバー側のコストが増えると思います。
アナンド

ウイルス対策製品のほとんどの「サーバー」エディションは、主に予想される使用法のために、「デスクトップ」エディションよりも高価であり、多くの場合数倍以上です。AVG(www.avg.com)、ESET(www.eset.com)、またはComputer Associates(www.ca.com)をお勧めします。
devstuff 2009

4

Monoを使用して、Apache / LinuxでASP.NETアプリケーションを実行できますが、Windowsで実行できる機能のサブセットは限られています。「彼らは」Windowsが攻撃に対してより脆弱であると言っていることに関して-それは本当ではありません。IISは、Apacheよりも過去2年間でセキュリティの問題が少なくなっていますが、どちらの場合も、すべてをボックスの管理に任せています。両方のOSを簡単に保護できます。最近の攻撃ポイントは、OSやWebサーバーソフトウェアではなく、アプリケーション自体です。


3
何でも脆弱である可能性があります。オフにしてネットワークから切断しない限り、安全なものは何もありません
。– blowdart


3

dotnetは、GitHubの.NETの公式ホームです。.NET Foundationの一部である多くのプロジェクトを含む、マイクロソフトおよびコミュニティからの多くの.NET OSSプロジェクトを見つけることは、すばらしい出発点です。

これは、Linuxをサポートするための素晴らしいスタートかもしれません。


2

現在、.NETはLinuxやMac OSなどの複数のプラットフォームで実行されていますが、モノは完全にプラットフォームに依存していません。

JITが異なるOSにあるため、Monoは異なるプラットフォームで実行されています。

Monoは月光(.NETではシルバーライト)で完全に成功するわけではありません。研究だけではありません。

MonoはXSP2サーバーまたはApacheを使用します。大企業の一部はこのプロジェクトを使用しています。ロボットプロジェクトの一部もモノで実行しています。

詳細については、 http://www.mono-project.com/Main_Pageをご覧ください



1

Monoプロジェクトが最良のオプションです。ただし、(一部の領域での不完全なAPIサポートのように)多くの落とし穴があり、法的に灰色です(Richard Stallmanのような人々は、Microsoftが特許権を使用してMonoに参入する可能性があるため、Monoの使用を無視していますが、それは別の話です)。

とにかく、Apacheはモジュールを介して.NET / Monoをサポートしますが、前回Debianで提供されたバージョンを確認したときは、Perl言語サポートのみを提供していました。それが変更されたかどうかはわかりませんが、おそらく誰かがそこで修正してくれるでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.