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

布鲁诺·L:

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

这是我到目前为止已采取的步骤:

  1. 在Visual Studio 2015中创建模板ASP.NET Core Web应用程序(.NET Core)-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. 安装libuv以供Kestrel使用 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/cn/latest/getting-started.html
  2. https://www.microsoft.com/net/core#centos
  3. https://docs.asp.net/zh/1.0.0-rc1/getting-started/installing-on-linux.html

免责声明我对Linux没有经验。可以说我不理解我正在运行的某些命令。但是,我在这里学习!

问:我需要做什么才能获得运行AWS AWS Linux环境的模板.NET Core Web应用程序?

(我的猜测是设置HTTP服务器时我缺少了一些东西)

我需要更高的声誉才能发布两个以上的链接,因此如果有人要编辑,我将不胜感激。

布鲁诺·L:

@ user326608的答案几乎可以解决问题,但是在.NET Core 1.0.0发布之后,我将添加现在使用的步骤。

  1. 在Visual Studio 2015中创建模板ASP.NET Core Web应用程序(.NET Core)-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 "[email protected]"
  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 &

该解决方案现在对我来说效果很好。我有一个相关的帖子,试图创建一个User Data引导脚本,以尝试使其变得更容易。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Linux上运行.NET Core控制台应用程序

如何在.NET Core中获取IServiceProvider的实例?

如何运行.Net Core dll?

如何在ASP.NET Core MVC上正确设置Cookie的展示日期时间

如何在基于arm的自定义linux上运行ASP.NET Core?

如何在IIS中托管.Net Core网站以立即启动?

如何在.net Core 2.0 MVC的razor中映射路径?

如何在ASP.NET Core中获取IConfiguration实例?

如何在.NET Core DI中强制创建类的实例?

无法在Azure WebApp Linux(.Net Core 2.1 MVC)上运行jsreportlocal

如何在Linux(cntose)服务器上将我的asp.net mvc网站托管到该网站或将此网站代码转换为asp.net核心

如何在Mac上使用Vs代码部署ASP.NET Core MVC?

如何在端口5003上运行ASP .NET Core API?

如何在IIS上使用pythonnet运行.NET Core项目

如何从Linux上运行的.NET Core应用程序对Windows域用户进行身份验证

如何配置ASP.NET Core 3.1应用程序以并行运行ReactJS和MVC网站

如何在.Net Core MVC中发布

如何在.net core MVC视图中缩小?

如何在asp.net 3.5上运行asp.net 4.0网站?

如何在Arch Linux上安装Dot Net Core

如何在ASP.NET Core中的DbSet实例上使用Find(params object [] keyValues)方法?

如何在MVC .Net Core的依赖项注入框架中利用完全相同的对象实例

在.NET Core MVC中,如何在AuthorizationHandler内访问DbContext?

如何在AWS上使用.net Core应用程序部署Profile

如何在 .Net MVC Core 中将枚举显示为 DropDownList

Linux 上的 .NET Core 如何确定 SQL Server 实例侦听的端口?

如何在 Internet Explorer 11 上运行 Angular 5 asp.net core MVC

如何为在面向 net47 的 IIS 中运行的 ASP.NET Core 网站附加调试器?

如何在 ASP.NET Core MVC 中执行分页