16

AWS Amazon Linux AMIインスタンスから .NET Core MVC ウェブサイトを実行したいと考えています。

これまでに行った手順は次のとおりです。

  1. テンプレートASP.NET Core Web アプリケーション (.NET Core) - C# - MVC Web アプリケーションプロジェクトを Visual Studio 2015 で作成します。IIS Express でアプリケーションをコンパイルして実行します。構成 (web.confg、project.json など) への変更はありません。
  2. Web アプリケーション ソリューション全体を GitHub にアップロードします。
  3. Amazon Linux AMI (2016.03.2) インスタンスを起動します。セキュリティグループは、簡単にするために、今のところ「すべてのトラフィック」アクセスを開いています。
  4. PuTTY を使用して Linux インスタンスに SSH 接続します。ec2-userでログインします。
  5. インスタンスを更新するsudo yum update -y
  6. libunwindをインストールする sudo yum install libunwind -y
  7. gettextをインストールする sudo yum install gettext -y
  8. .NET コアをインストールする curl -sSL https://raw.githubusercontent.com/dotnet/cli/rel/1.0.0-preview1/scripts/obtain/dotnet-install.sh | bash /dev/stdin --version 1.0.0-preview1-002702 --install-dir ~/dotnet
  9. リンクsudo ln -s ~/dotnet/dotnet /usr/local/bin
  10. .NET バージョン マネージャー (DNVM)をインストールする curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/dnvminstall.sh | DNX_BRANCH=dev sh && source ~/.dnx/dnvm/dnvm.sh
  11. コマンドを実行source /home/ec2-user/.dnx/dnvm/dnvm.sh
  12. .NET 実行環境 (DNX)をインストールする dnvm upgrade -r coreclr
  13. Kestrelで使用するlibuvをインストールします。 sudo yum install automake libtool wget -y wget http://dist.libuv.org/dist/v1.8.0/libuv-v1.8.0.tar.gz tar -zxf libuv-v1.8.0.tar.gz cd libuv-v1.8.0 sudo sh autogen.sh sudo ./configure sudo make sudo make check sudo make install sudo ln -s /usr/lib64/libdl.so.2 /usr/lib64/libdl sudo ln -s /usr/local/lib/libuv.so.1.0.0 /usr/lib64/libuv.so
  14. Gitをインストールする sudo yum install git -y
  15. 「/home/ec2-user」ディレクトリにアプリケーション用のディレクトリを作成します。そのディレクトリに移動します。mkdir director-name cd directory-name
  16. Git を使用して Web アプリを複製するgit config user.name "myUserName" git config user.email "myEmail" git clone https://github.com/username/repositoryname.git
  17. 「プロジェクト」ディレクトリに移動しcd solution-name/src/web-project-nameます。
  18. パッケージを復元するdotnet restore
  19. アプリケーションのビルドdotnet build
  20. アプリケーションを実行dotnet run

この時点で、ターミナルに次のように表示されます。

現在リッスン中: http://localhost:5000

最後にポート 5000 がタグ付けされた AWS DNS/IP (http://aws-ip-or-dns:5000) にアクセスしようとしましたが、応答がありません。

DockerMonoが使用できるツールであることはわかっていますが、むしろこのアプローチを機能させたいと考えています。

.NET Core、DNVM、および DNX のインストールに使用したスクリプトは、次のリンクからの CentOS と Ubuntu の指示を組み合わせたものです。

  1. https://docs.asp.net/en/latest/getting-started.html
  2. https://www.microsoft.com/net/core#centos
  3. https://docs.asp.net/en/1.0.0-rc1/getting-started/installing-on-linux.html

免責事項 私は Linux の経験があまりありません。私が実行しているコマンドのいくつかを理解していないと言っても過言ではありません。しかし、私は学ぶためにここにいます!

質問: AWS Amazon Linux 環境で実行されているテンプレート .NET Core Web アプリケーションを取得するには、何をする必要がありますか?

(私の推測では、HTTP サーバーのセットアップに何か欠けているものがあると思います)

2つ以上のリンクを投稿するには、より多くの評判が必要なので、誰かが編集したい場合は、それをいただければ幸いです.

4

4 に答える 4

5

@ user326608 からの回答はほぼそのとおりですが、.NET Core 1.0.0 のリリース後に現在使用している手順を追加します。

  1. テンプレートASP.NET Core Web アプリケーション (.NET Core) - C# - MVC Web アプリケーションプロジェクトを Visual Studio 2015 で作成します。IIS Express でアプリケーションをコンパイルして実行します。構成 (web.confg、project.json など) への変更はありません。
  2. Web アプリケーション ソリューション全体を GitHub にアップロードします。 Git アップロードにproject.lock.jsonを含めないでください。
  3. Amazon Linux AMI (2016.09.0) インスタンスを起動します。SSH、HTTP、および HTTPS トラフィックが許可されたセキュリティ グループ。
  4. PuTTY を使用して Linux インスタンスに SSH 接続します。ec2-userでログインします。
  5. インスタンスを更新するsudo yum update -y
  6. libunwindをインストールする sudo yum install libunwind -y
  7. .NET コアをダウンロード curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=809131
  8. .NET コアをインストールする sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
  9. リンクsudo ln -s /opt/dotnet/dotnet /usr/local/bin
  10. IP テーブルの構成 sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 5000
  11. Gitをインストールする sudo yum install git -y
  12. 構成、設定git config --global user.name "myUserName"
  13. 構成、設定git config --global user.email "myGitEmail@something.com"
  14. ディレクトリを作成mkdir /var/coreapp
  15. ディレクトリに移動cd /var/coreapp
  16. Git からプロジェクトを取得するgit clone https://github.com/myUsername/myRepository.git
  17. 所有者の変更sudo chown -R ec2-user /var/coreapp
  18. ディレクトリに移動cd /var/coreapp/solution-name/src/web-project-name
  19. バックグラウンドでの復元dotnet restore、ビルドdotnet build、および実行nohup dotnet run > /dev/null 2>&1 &

このソリューションは、現在私にとってうまく機能しています。これをさらに簡単にするために、ユーザー データブートストラップ スクリプトを作成しようとしている関連記事があります。

于 2016-12-21T18:13:45.997 に答える
1

Microsoft.NETCore.App 1.0.1 の 2016 年 9 月の更新のために上記を更新する必要がある場合は、https://www.microsoft.com/net/core#centosの指示が役に立ちました。

curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=827529
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
sudo rm /usr/local/bin/dotnet
sudo ln -s /opt/dotnet/dotnet /usr/local/bin

その後実行すると、次のdotnet --infoようになります。

.NET Command Line Tools (1.0.0-preview2-003131)

Product Information:
 Version:            1.0.0-preview2-003131
 Commit SHA-1 hash:  635cf40e58

Runtime Environment:
 OS Name:     amzn
 OS Version:  2016.09
 OS Platform: Linux
 RID:         amzn.2016.09-x64

その後、私は自分を削除してproject.lock.json実行しましたdotnet restore.

dotnet runRID が不明だったため、 を直接動作させることはできませんでしたが、 Dockerfilewithmicrosoft/dotnet:onbuildとこのセクションを使用して動作しproject.jsonました。

"runtimes": {
    "debian.8-x64" : {}
},
于 2016-10-06T13:26:32.563 に答える