web-dev-qa-db-ja.com

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

Javaのバックグラウンドを持つ開発者にとって、ASP.NETツール/プラットフォームを使用したソフトウェア開発の調査にも興味があります。

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

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

89
Anand

使用している特定の.NETテクノロジーによって異なります。 Mono Project は、ASP.NETサイトを実行するためのApacheモジュール(mod_mono)を提供します。

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

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

67
alastairs

ですから、これは古い質問ですが、答えが更新される可能性があると思います。

Microsoftは正式に asp.net vnext とそのオープンソースをリリースし、LinuxとMacの両方にデプロイ可能です。そのすべてはまだかなり新しいものですが、monoの最新ビルドに依存しているため、現在mono-frameworkをコンパイルする必要があります。 これは設定ガイドです

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

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

85
Terrance

Windows開発者がコードをMono/Linuxに移植するのに役立つこのガイドを検討してください。

ガイド:ASP.NETアプリケーションの移植-モノ

22
miguel.de.icaza

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

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

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

12
thelsdj

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

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

10
mqueirozcorreia

Visual Studioを使用して、ASP.NET 5アプリをLinux上のDockerに公開できるようになりました。スコット・ハセルマンの以下の投稿を参照してください

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

10
Tepu

はい、できます。 Mono Project に精通し、開始するために この記事 を読んでください。

5
dde

Linux上のASP.NETの場合、 Mono を確認してください。

とは言っても、何千ものサイトがWindows Server上で問題なく実行されています。任意のOSを備えた構成の不十分なサーバーは脆弱です。 Linuxはあなたを貧しい管理者から救いません。

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

4
dahlbyk

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

4
blowdart

dotnet は、GitHubの.NETの公式ホームです。 .NET Foundationの一部を含む多くの.NET OSSプロジェクトをMicrosoftおよびコミュニティから見つけるのに最適な出発点です。

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

3
Kurkula

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

とにかく、Apacheはモジュールを介して.NET/Monoをサポートしますが、Debianで提供されているバージョンを最後にチェックしたとき、Perl言語のみをサポートしていました。それが変更されたかどうかは言えません。おそらく誰か他の人がそこで修正できます。

1
Ben

ApacheでASP.Netを実行できるようにするNovellのMonoプロジェクトがあります。

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

1
Jared