摘要:发布项目到IIS或者.Net Core 项目发布到IIS服务器或者CentOS记录一下,后面忘了又来看看。html
1.三、选择完点击下一步,从互联网选择更新等待安装,安装好了最好重启一下。重启好了。打开控制面板----管理工具--------IIS管理器 看图是下一个不是上一个 建议右击保存到开始屏幕后面好找linux
运行起来就算只有一个Index.html文件都能访问。若是没有出来考虑一下错误nginx
一、网站没有权限,你要点击网站下面你创建的那个网站受权。授予IIS的权利;web
二、.Net CRL版本太低了如今有的.Netfarnwork都用了4.8了IIS上面不支持了那么高的,还要自行安装;shell
三、端口没有开放,远程服务器的端口要去控制台本身开的,个人是阿里云,就要上控制台管理出站入站规则里面添加出站、进站规则;小程序
四、防火墙的问题,关了试试;api
五、目录浏览打开了,须要关闭安全
我遇到的问题暂时只能想到这几个,万事开头难,建议仍是用一个静态网页先试试慢慢排查。服务器
SDK下载也是在这里开发环境用的。我用的VS2019 发布的发布为文件夹的格式而后拷贝到服务器上面同样的 右击网站---添加网站: asp.net
注意:
一、这里的应用程序池要改成.NET CLR版本选择无托管代码;
二、若是安装了dotnet-hosing其余的项目启动503 就安装这个 https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145
我的的话建议申请一个免费的,个人是阿里云的 一年申请一次,而后下载证书绑定在网站上。通常都是80默认的端口才加证书用https访问的右击网站下面的端口80的网站名称 -------编辑绑定-------类型选择https 下面就有SSL证书添加进去。
通常这里写小程序的API就须要这种https的安全链接 哈哈。要把443端口映射到80端口上自行度娘就不在累赘了。
个人是CentOS8的系统,首先要链接linux就要有工具 下载xsheel《 http://www.yijianlan.com:8040/Home/Down?id=6025 》我本身的服务器有点慢哦;或者去官方下载我就不找连接了
执行命令: sudo yum install dotnet-sdk-3.1 安装.net core 3.1 sdk
通常我都是在这个里面新建一个文件吧发布好的直接粘贴进去 我这里是打开api进去粘贴的
运行命令 找打项目的目录 并找到 项目名.dll这个文件 用dotnet 运行
默认就是5000端口打开 是打不开的 报错Unable to bind to http://localhost:5000 on the IPv6 loopback interface: 'Cannot assign requested address'.” 这不必担忧也不用纠结5000端口用不了指定另外一个端口就好了
打开项目的Program。cs文件编辑 我这里改了8020端口 固然改了端口要在系统里面开放端口,还有在服务器控制台开启端口不要忘了
public class Program { public static void Main(string[] args) { CreateHostBuilder(args).Build().Run(); } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseUrls("http://*:8020") .UseStartup<Startup>(); }); }
补充一点命令 后面用到直接来拿:
firewall-cmd --zone=public --add-port=8020/tcp --permanent # 开放8020端口
firewall-cmd --zone=public --list-ports #查看防火墙全部开放的端口
firewall-cmd --reload # 配置当即生效
sudo systemctl start firewalld #打开防火墙
systemctl stop firewalld.service #关闭防火墙
firewall-cmd --state #查看防火墙状态
shutdown -r now #马上重启(root用户使用)
1 使用命令 sudo yum install epel-release
添加nginx包存储库
2 使用命令 sudo yum install nginx
安装nginx
3 使用命令 sudo systemctl start nginx
启动nginx
4 使用命令 ps -ef |grep nginx
验证nginx是否启动成功
5 可使用命令 sudo systemctl enable nginx
设置nginx开机启动
6 使用命令 sudo systemctl start nginx重启nginx
访问 8020 端口是能够的
为何要添加守护进程,有如下缘由
1 asp.net core程序运行在shell中,shell关闭会致使该web应用关闭
2 应用程序意外终止的话须要在shell里从新启动
3 服务器宕机或者意外重启的话,须要从新启动shell,而后从新启动web程序
1)相关命令
1 使用命令 yum install epel-release 和 yum install supervisor 安装supervisor
2 使用命令 systemctl start supervisord.service
启动服务
3 使用命令 systemctl status supervisord.service 查看服务状态
4 设置开机启动 systemctl enable supervisord.service
5 重启 supervisorctl reload
2)文件配置
1 在 /etc/supervisord.d
建立文件 WebApplication1.ini
2 配置 WebApplication1.ini 以下
1) nginx.conf配置
server {
listen 8081;
location / {
proxy_pass http://localhost:8090;
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;
}
}
1) MyBuy.Api.ini配置
[program: MyBuy.Api] ;程序的名称
command = dotnet MyBuy.Api.dll ;执行的命令
directory = /var/WebApplication/ ;命令执行的目录
environment = ASPNETCORE__ENVIRONMENT=Production ;环境变量
user = root ;执行进程的用户
stopsignal = INT
autostart = true ;是否自动启动
autorestart = true ;是否自动重启
startsecs = 1 ;自动重启间隔
stderr_logfile = /var/log/WebApplication1.err.log ;标准错误日志
stdout_logfile = /var/log/WebApplication1.out.log ;标准输出日志
折腾了半天,服务器换了好几个系统了哈哈重要折腾出来了,虽然用的少,多得都在撸码,记录一下长点记忆。知识就是慢慢积累起来只有一步一步的来。离三十岁又近了一步哈哈。
每日一句:千里烟云,是谁留下的孤寂年华?谁人在他的尽头画上爱的符号,聆听千古不变的亘古传情佳话?流水无情,落花有意,你轻快的步伐,带走了多少人间绝美佳话?任相思成河,今后流尽迢迢山水,走遍氤氲天下。