Asp.Net项目发布 到 IIS、 Core3.1 发布到 IIS CentOS8.x
摘要:发布项目到IIS或者.Net Core 项目发布到IIS服务器或者CentOS记录一下,后面忘了又来看看。
1、服务器安装IIS
1.1、不管你是本地的电脑还是网上购买的服务器,只要是能通过远程桌面登录进去的。装的系统是Windows的。打开控制面板找到程序,点击《启动或关闭Windows》功能
1.2、远程服务器还可以打开服务器管理器打开,在这里安装IIS需要的一些功能本地服务器跟远程都在下面展示
1.3、选择完点击下一步,从互联网选择更新等待安装,安装好了最好重启一下。重启好了。打开控制面板----管理工具--------IIS管理器 看图是下一个不是上一个 建议右击保存到开始屏幕后面好找
1.5、 打开又击网站,添加网站,如下图所示,网站名字就是一个命名,应用程序可以共用一个也可以新建,后面还要配置应用程序池,一般选择集成的类型,.Net 项目(除了Core)选择.NET CLR v4.xxx的版本,如果没有,就是安装功能的时候你没有添加。
运行起来就算只有一个Index.html文件都能访问。如果没有出来考虑一下错误
1、网站没有权限,你要点击网站下面你建立的那个网站授权。授予IIS的权利;
2、.Net CRL版本过低了现在有的.Netfarnwork都用了4.8了IIS上面不支持了那么高的,还要自行安装;
3、端口没有开放,远程服务器的端口要去控制台自己开的,我的是阿里云,就要上控制台管理出站入站规则里面添加出站、进站规则;
4、防火墙的问题,关了试试;
5、目录浏览打开了,需要关闭
我遇到的问题暂时只能想到这几个,万事开头难,建议还是用一个静态网页先试试慢慢排查。
2、.Net Core3.1发布IIS
.2.1、Net Core3.1 发布到IIS要安装两个工具 aspnetcore-runtime 跟 dotnet-hosing
SDK下载也是在这里开发环境用的。我用的VS2019 发布的发布为文件夹的格式然后拷贝到服务器上面一样的 右击网站---添加网站:
注意:
1、这里的应用程序池要改为.NET CLR版本选择无托管代码;
2、如果安装了dotnet-hosing其他的项目启动503 就安装这个 https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145
3、https访问
个人的话建议申请一个免费的,我的是阿里云的 一年申请一次,然后下载证书绑定在网站上。一般都是80默认的端口才加证书用https访问的右击网站下面的端口80的网站名称 -------编辑绑定-------类型选择https 下面就有SSL证书添加进去。
一般这里写小程序的API就需要这种https的安全连接 哈哈。要把443端口映射到80端口上自行度娘就不在累赘了。
4、Core 3.1 WebApi 部署到CentOS 8.x上
我的是CentOS8的系统,首先要连接linux就要有工具 下载xsheel《 http://www.yijianlan.com:8040/Home/Down?id=6025 》我自己的服务器有点慢哦;或者去官方下载我就不找链接了
4.2、安装Core3.1 运行环境.net core runtime 如果服务器只是用来运行core 程序安装这个就可以了。如果要做开发和编译工作,则需要安装.net core sdk.net core sdk包含了.net core runtime,所以这里就直接安装.net core skd了 。
执行命令: sudo yum install dotnet-sdk-3.1 安装.net core 3.1 sdk
4.3、用VS2019创建一个Core3.1 发布到文件夹,然后打开xftp或者点击这个新建文件传输吧编译好的文件上传
一般我都是在这个里面新建一个文件吧发布好的直接粘贴进去 我这里是打开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用户使用)
4.4 添加nginx做反向代理
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
4.5 配置nginx,设置代理端口
访问 8020 端口是可以的
4.6 添加守护进程
为什么要添加守护进程,有以下原因
1 asp.net core程序运行在shell中,shell关闭会导致该web应用关闭
2 应用程序意外终止的话需要在shell里重新启动
3 服务器宕机或者意外重启的话,需要重新启动shell,然后重新启动web程序
4.7使用守护进程supervisor
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 如下
4.8 备注
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 ;标准输出日志
5、总结
折腾了半天,服务器换了好几个系统了哈哈重要折腾出来了,虽然用的少,多得都在撸码,记录一下长点记忆。知识就是慢慢积累起来只有一步一步的来。离三十岁又近了一步哈哈。
每日一句:千里烟云,是谁留下的孤寂年华?谁人在他的尽头画上爱的符号,聆听千古不变的亘古传情佳话?流水无情,落花有意,你轻快的步伐,带走了多少人间绝美佳话?任相思成河,从此流尽迢迢山水,走遍氤氲天下。
本文链接:https://www.cnblogs.com/w5942066/p/13411646.html
Asp.Net项目发布 到 IIS、 Core3.1 发布到 IIS CentOS8.x的更多相关文章
- [ASP.net教程]IIS服务器 远程发布(Web Deploy)配置
asp.net 网站有三种常用的发布方式:分别是拷贝开发机上发布好的文件到服务器硬盘上.打包成安装程序到服务器上安装.通过Visual Studio 开发平台远程发布到服务器. 在asp.net网站的 ...
- asp.net core 系列 9 三种运行环境和IIS发布
一.在asp.net core中使用多个环境 ASP.NET Core 配置是基于运行时环境, 使用环境变量.ASP.NET Core 在应用启动时读取环境变量ASPNETCORE_ENVIRONME ...
- 自动发布-asp.net自动发布、IIS站点自动发布(集成SLB、配置管理、Jenkins)
PS:概要.背景.结语都是日常“装X”,可以跳过直接看自动发布 环境:阿里云SLB.阿里云ECS.IIS7.0.Jenkins.Spring.Net 概要 公司一个项目从无到有,不仅仅是系统从无到有的 ...
- ASP.NET MVC - 发布web应用程序、部署到IIS
发布项目 右击项目 - 发布 选择IIS - 点击发布 发布方法 - 文件系统,目标位置 - 选择与项目所在目录不同的目录(也即,指定一个发布生成文件的目录),文件发布选项 - 不选 - 点击发布 安 ...
- 【手记】解决VS发布asp.net项目报错“该项目中不存在目标GatherAllFilesToPublish”及后续问题
办法在最后. 用VS2017打开一个以前用VS2010写的asp.net项目后,设置好发布选项(发布到文件夹),发布的时候报错如图: 搜索一番,找到的办法是: 在项目文件(xxx.csproj)中,在 ...
- Jenkins+svn+ftp自动化发布asp.net项目
今天将自己所掌握的(Jenkins+svn+ftp自动化发布asp.net项目)知识分享给大家,希望能帮组到大家: (1)先下载Jenkins并安装: (2)安装.Net所需要的插件: (3)配置插件 ...
- VS2013中使用本地IIS+域名调试ASP.NET项目
VS2013中使用本地IIS+域名调试ASP.NET项目 在有些情况下需要使用本地的IIS作为调试服务器,如支持多域名的网站,这里记录下如何使用. 1.修改本机hosts文件. 路径:C:\Windo ...
- Ubuntu18.04安装Docker并部署(编译、发布、构建镜像)Asp.NetCore项目全过程笔记
环境准备:阿里云Ubuntu18.04 全新安装 一.安装Docker 1.删除旧版本并更新包索引: sudo apt-get remove docker docker-engine dock ...
- ASP.NET项目在IIS上使用虚拟目录
在IIS中,应用程序与虚拟目录特别容易混淆,但两者又是完全不同的概念. 应用程序是一个逻辑边界,这个边界可以分隔网站及其组成部分.虚拟目录则是一个真实的指针,这个指针指向了一个本地或远程的物理路径.虚 ...
随机推荐
- OutOfMemory相关问题(内存溢出异常OOM)
OutOfMemory(内存溢出异常OOM) java.lang.OutOfMemoryError :Thrown when the Java Virtual Machine cannot alloc ...
- Talk About AWS Aurora for MySQL max_connections parameter Calculation | 浅谈AWS Aurora for MySQL数据库中 max_connections参数的计算
1. The Problem | 现象 When connect to the product environment database of my company, the Navicat show ...
- Centos 6.4最小化安装后的优化(1)
一.更新yum官方源 Centos 6.4系统自带的更新源速度比较慢,相比各位都有所感受,国内的速度慢的让人受不了.为了让centos6.4系统使用速度更快的yum更新源,一般都会选择更换源,详细步骤 ...
- 微信小程序热更新,小程序提示版本更新,版本迭代,强制更新,微信小程序版本迭代
相信很多人在做小程序的时候都会有迭代每当版本迭代的时候之前老版本的一些方法或者显示就不够用了这就需要用到小程序的热更新.或者说是提示升级小程序版本 editionUpdate:function(){ ...
- 响应式布局rem、rem方法封装、移动端响应式布局
相信大家在做移动端的时候都会做各个手机的适配这种适配就是响应式布局在之前做网站的响应式从pc到手机用的是媒体查询 @media screen and (max-width: 300px){} 最大宽度 ...
- 小谢第36问:elemet - table表格修改后表格行高亮显示且定位到当前行当前页
第一次做这个需求得时候很乱,总是在表格页和修改页徘徊,总觉得什么都会,但是就是做不出自己想要得效果 其实如果先把思路搞清楚,这个问题得知识点却是不多,以下是我对表格高亮显示得思路: 首先,我会从已知得 ...
- 像写Flutter一样开发Android原生应用
要问到Flutter和Android原生App,在开发是有何区别,编程方式是绕不开的话题.Flutter采用声明式编程,Android原生开发则采用命令式编程. 声明式编程 VS. 命令式编程 我们首 ...
- 云原生时代高性能Java框架—Quarkus(一)
--- Quarkus&GraalVM介绍.创建并启动第一个项目 Quarkus系列博文 Quarkus&GraalVM介绍.创建并启动第一个项目 构建Quarkus本地镜像.容器化部 ...
- 关于ES6的let和const
变量 var存在的问题 可以重复声明 无法限制修改 没有块级作用域 (在全局范围内有效) 存在变量提升 const/let 不可以重复声明 let a = 1; let a = 2; var b = ...
- Oracle DataGuard主备切换(switchover)
Oracle DataGuard主备切换可以使用传统的手动命令切换,也可以使用dgmgr切换,本文记录手动切换. (一)将主库切换为物理备库 STEP1:查看主库状态 SQL> SELECT O ...