如何在AWS Linux实例上运行.NET Core MVC站点

Bru*_* L. 16 linux amazon-ec2 asp.net-core-mvc kestrel-http-server

我想从AWS Amazon Linux AMI实例运行.NET Core MVC网站.

以下是我到目前为止采取的步骤:

  1. 在Visual Studio 2015中创建模板ASP.NET核心Web应用程序(.NET核心) - C# - MVC Web应用程序项目.在IIS Express中编译并运行应用程序.没有对任何配置进行任何更改(web.confg,project.json等).
  2. 将整个Web应用程序解决方案上传到GitHub.
  3. 启动Amazon Linux AMI(2016.03.2)实例.为简单起见,安全组现在打开"所有流量"访问权限.
  4. 使用PuTTY SSH进入Linux实例.使用ec2-user登录.
  5. 更新实例 sudo yum update -y
  6. 安装libunwind sudo yum install libunwind -y
  7. 安装gettext sudo yum install gettext -y
  8. 安装.NET Core 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克隆网络应用程序 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服务器时缺少一些东西)

我需要更多的声誉来发布两个以上的链接,所以如果有人想编辑,我会很感激.

Bru*_* L. 5

来自@ user326608的答案几乎可以实现,但我将在.NET Core 1.0.0发布后添加我现在使用的步骤.

  1. 在Visual Studio 2015中创建模板ASP.NET核心Web应用程序(.NET核心) - C# - MVC Web应用程序项目.在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 SSH进入Linux实例.使用ec2-user登录.
  5. 更新实例 sudo yum update -y
  6. 安装libunwind sudo yum install libunwind -y
  7. 下载.NET Core curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=809131
  8. 安装.NET Core 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 &

这个解决方案现在对我很有用.我有一个相关的帖子试图创建一个用户数据引导脚本,试图让这更容易.