您现在的位置是:网站首页> 编程资料编程资料
ASP.NET Core快速入门之环境篇_实用技巧_
2023-05-24
376人已围观
简介 ASP.NET Core快速入门之环境篇_实用技巧_
前言
ASP.NET Core 是一个开源和跨平台的框架,用于构建如 Web 应用、物联网(IoT)应用和移动后端应用等连接到互联网的基于云的现代应用程序。ASP.NET Core 应用可运行于 .NET Core 和完整的 .NET Framework 之上。它整合了原来ASP.NET中的MVC和WebApi框架,你可以在 Windows、Mac 和 Linux 上跨平台的开发和运行你的 ASP.NET Core 应用。
vmware虚拟机安装
vmware哪里下载?360软件管家就可以下载。然后网上找个序列号。
我这里安装的是12.1.1

安装很简单一直下一步就好了。
CentOS7.3安装
下载CentOS http://isoredirect.centos.org/centos/7/isos/x86_64/ 我们可以选择163或阿里云的节点,速度会快点。

下载完成后打开vmware准备安装







菜鸟可以选择有界面的


选好后然后开始安装,然后设置密码,然后重启就好了。

Windows的客户端软件
下载安装Xshell https://www.baidu.com/baidu?word=Xshell
下载安装WinSCP https://www.baidu.com/baidu?word=WinSCP (你也可以使用Xftp,记得选sftp,不然需要服务器支持ftp)
进入CentOS,右键

开始第一个命令。查看IP
ifconfig -a

接下来,可以全部由Xshell操作。
打开Xshell

然后输入用户名密码登录。(使用root登录)

.NET Core1.1安装
根据微软资料 https://www.microsoft.com/net/core
在命令行执行:
sudo yum install libunwind libicu #(安装libicu依赖) curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?linkid=848821 #(下载sdk压缩包) 根据网速,可能快可能慢 sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet #(解压缩) sudo ln -s /opt/dotnet/dotnet /usr/local/bin #(创建链接)
dotnet new console -o hwapp # 我们初始化一个示例Hello World应用程序 (这里稍微耗时点) cd hwapp
dotnet restore dotnet run #运行应用程序

看到打印的hello world证明 .net core的环境已经装好了。
【小白技巧】
- "#"是注释
- shirf + insert 粘贴 (不能ctrl + c v 有点不习惯)
- ctrl + insert 复制
nginx1.12.1安装
curl -o nginx.rpm http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm rpm -ivh nginx.rpm yum install nginx #安装

systemctl start nginx #启动nginx systemctl enable nginx #设置nginx的开机启动
然后登录 CentOs系统 打开浏览器 输入 :192.168.233.129 (之前查到的IP)

看到这个页面就代表安装成功了。
配置防火墙
如果你在物理机的浏览器访问,你会发现访问不了。
那是因为CentOs的防火墙拦截了,我们打开端口。
firewall-cmd --zone=public --add-port=80/tcp --permanent #(开放80端口) systemctl restart firewalld #(重启防火墙以使配置即时生效)
然后访问成功。
部署ASP.NET Core应用程序
打开VS2017 新建一个.net core 项目

右键发布(发布之前最好先在本地跑下看正常不)

然后打开我们的WinSCP(前面下载的)

点击登录,然后就可以看到CentOs系统的文件目录了。然后随便建个文件夹,准备放我们发布发好的程序。

右键上传

然后命令运行
cd /home/NetCoreDemo #这个目录 要输入你自己对应放的目录 dotnet netcoreDemo.dll # netcoreDemo.dll 这个对应你建的项目生成的dll

看到了5000 端口的一个网址,证明部署好了。
然后在虚拟机里面访问 http://localhost:5000 ,ok。

nginx 配置
前面我们只说了nginx,并没有说是干嘛的。nginx的作用有点先iis,是个web服务器。做转发。
我们发现http://localhost:5000 可以访问。但是通过ip却不能访问。那么我们现在就可以通过80访问nginx,然后nginx再帮我们访问5000。

打开路径 /etc/nginx/conf.d
编辑default.conf 文件内容替换为
server { listen 80; location / { proxy_pass http://localhost:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }将nginx添加至SELinux的白名单,否则会报502错误。
nginx -s reload #使其即时生效 【注意】然后这里访问下 http://192.168.233.130/ (对应你自己的centos ip,这一步好重要。应该是要先主动触发这个502错误吧。) yum install policycoreutils-python #(选y) cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx semodule -i mynginx.pp SELinux 对nginx访问目录的影响 https://www.cnblogs.com/mywebnumber/p/5572984.html
然后我们就可以在物理机上通过ip访问了(不用带端口了,直接80 然后 nginx 转到了5000)。
配置守护服务(Supervisor)
yum install python-setuptools easy_install supervisor #安装Supervisor mkdir /etc/supervisor echo_supervisord_conf > /etc/supervisor/supervisord.conf #配置Supervisor

文件的最后
;[include] ;files = relative/directory/*.ini
改成(【注意】去掉;且不能有空格)
[include] files = conf.d/*.conf
进入目录 /etc/supervisor/ 新建 conf.d文件夹,conf.d文件夹下新建 netcoreDemo.conf文件
内容(【注意】看 第二行 第三行的 注释,根据实际名字填入)
[program:netcoreDemo] command=dotnet netcoreDemo.dll ; (注意)运行程序的命令 directory= /home/NetCoreDemo/ ; (注意 注意)对应的你的项目的存放目录,这个地方好多初学者搞错!!! autorestart=true ; 程序意外退出是否自动重启 stderr_logfile=/var/log/WebApplication1.err.log ; 错误日志文件 stdout_logfile=/var/log/WebApplication1.out.log ; 输出日志文件 environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量 user=root ; 进程执行的用户身份 stopsignal=INT
supervisord -c /etc/supervisor/supervisord.conf ps -ef | grep netcoreDemo #【注意】netcoreDemo是上面 program:netcoreDemo 的命名 supervisorctl reload #重新加载

然后就好了,现在关掉那个5000界面也可以访问。
配置Supervisor开机启动
打开目录 /usr/lib/systemd/system/ 新建文件 supervisord.service
内容:
本站声明:
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!
相关内容
- .Net程序内存异常的原因及解决_实用技巧_
- ASP.NET Core扩展库之Http请求模拟功能的使用_实用技巧_
- .NET Core自定义项目模板的全过程_实用技巧_
- .net实现动态验证码功能_实用技巧_
- .netcore 写快递100的快递物流信息查询接口的实现_实用技巧_
- python scrapy项目下spiders内多个爬虫同时运行的实现_实用技巧_
- ASP.NET 通过拦截器记录错误日志的示例代码_实用技巧_
- ASP.NET Core扩展库之Http通用扩展库的使用详解_实用技巧_
- 时间轻松学会.NET Core操作ElasticSearch7的方法_实用技巧_
- Asp.Net Core添加请求头自定义认证的示例_实用技巧_
点击排行
本栏推荐
