Asp.Net Core2.0在linux下发布
一.在linux上新建mvc项目发布
可以参考:https://segmentfault.com/a/1190000012428781
也可以看微软官方文档。
大致步骤如下:
1.在linux下安装.netcore,运行dotnet --version命令检查是否安装成功.
2.新建一个模板网站:
sudo vim /etc/systemd/system/kestrel-firstapp.service
在/etc/systemd/system目录下新建一个 kestrel-firstapp.service文件,然后写上一段脚本如下:
[Unit]
Description=Example .NET Web API App running on Ubuntu
[Service]
WorkingDirectory=/home/birdhumen/www/firstapp
ExecStart=/usr/bin/dotnet /home/birdhumen/www/firstapp/test.dll
Restart=always
RestartSec=10 # Restart service after 10 seconds if dotnet service crashes
SyslogIdentifier=dotnet-example
User=root
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
红色标出来的很关键,因为我是在root下操作的,所以直接是home目录下的绝对路径/home/birdhumen/www/firstapp,
birdhumen是普通用户名,www和firstapp都是创建的文件夹,firstapp下放了发布好的asp.net core2.0的模板的dll,有7,8个文件。
3.然后执行:
sudo systemctl enable kestrel-mysite.service # 注册服务
sudo systemctl start kestrel-mysite.service # 启动服务
sudo systemctl status kestrel-mysite.service # 检查服务的运行状态 ,如果这句话出错,大概率是脚本写的有问题。
成功后可以看到类似
localhost:5000
的东西了,然后就说明已经成功启动服务。在linux下直接
wget http://localhost:5000
4.但是在外网依旧还是访问不了,需要借助nginx,看另一篇文章:https://blog.csdn.net/wcc27857285/article/details/80033364 安装nginx
5.装好nginx后,需要修改nginx的配置文件
找到nginx的目录,若找不到,就用命令:whereis nginx
目前是~/usr/local/nginx/conf/ 目录下面,有两份文件,nginx.conf和nginx.conf.default,default这份是默认的,但是实际加载的是nginx.conf。
vim nginx.conf
找到server节点,把location下面的替换成下面的红色文本:
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;
}
}
7.重启下服务:./nginx -s reload, 成功后,即可在外网访问linux的IP,即可访问到ASP.netcore2.0的模板网站
二.发布自己的ASP.net web
上面是VS2017自带的模板,接下来讲下怎么发布自己写的web,然后替换
1.在VS上写好了代码后,右键资源管理器中的项目名,不是解决方案,右键找到发布选项,点击发布,然后选择目录。
2.发布完后,找到Release/PublishOutput文件夹,把publishoutput整个文件夹拷贝到linux上,这里用的是putty工具:
https://blog.csdn.net/wcc27857285/article/details/80038523
3.找到/etc/systemd/system/kestrel-firstapp.service ,编辑
4.把两个目录修改一下,改成publishoutput所在的目录,保存退出
5.依次执行:systemctl enable kes.service
systemctl stop kes.service
systemctl start kes.service
systemctl status kes.service -l
6.status这里会提示错误:
Unable to bind to http://localhost:5000 on the IPv6 loopback interface: 'Error -99 EADDRNOTAVAIL address not available'.
7.不用管,外网尝试下访问IP,应该已经成功,
8.若提示错误,则进入nginx,重启下: ./nginx -s reload
9.然后查看下是否正常 ps -ef | grep nginx ,看到worker和master两个进程说明正常。
10.再次尝试外网访问。
Asp.Net Core2.0在linux下发布的更多相关文章
- asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二)
原文:asp.net core2.0 部署centos7/linux系统 --守护进程supervisor(二) 续上一篇文章:asp.net core2.0 部署centos7/linux系统 -- ...
- 【转】Asp.Net Core2.0获取客户IP地址,及解决发布到Ubuntu服务器获取不到正确IP解决办法
1.获取客户端IP地址实现方法(扩展类) using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.ModelBinding; u ...
- Asp.Net Core2.0获取客户IP地址,及解决发布到Ubuntu服务器获取不到正确IP解决办法
1.获取客户端IP地址实现方法(扩展类) using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.ModelBinding; u ...
- 一步一步带你做WebApi迁移ASP.NET Core2.0
随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的ASP.NET WebApi站点,就可以跨平台运行在Linux中.我们有必要先说一下ASP.NET Core. ASP ...
- WebApi迁移ASP.NET Core2.0
WebApi迁移ASP.NET Core2.0 一步一步带你做WebApi迁移ASP.NET Core2.0 随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的AS ...
- 将asp.net core2.0项目部署在IIS上运行
原文:将asp.net core2.0项目部署在IIS上运行 前言: 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是独立运行的.它独立运行在控 ...
- .Net Core技术研究-WebApi迁移ASP.NET Core2.0
随着ASP.NET Core 2.0发布之后,原先运行在Windows IIS中的ASP.NET WebApi站点,就可以跨平台运行在Linux中.我们有必要先说一下ASP.NET Core. ASP ...
- 【翻译】asp.net core2.0中的token认证
原文地址:https://developer.okta.com/blog/2018/03/23/token-authentication-aspnetcore-complete-guide token ...
- 在阿里云Windows Server 上部署ASP .NET CORE2.0项目
近期使用ASP.NET Core2.0对博客进行了重写,在部署到服务器时遇到了一些问题,来记录一下留用. 配置环境 安装 .Net Framework3.5 在IIS管理器上直接开启,这里总是失败,上 ...
随机推荐
- js把时间转化为 ‘2019-07-01’ 格式
将new Date()数据转化为‘2019-07-01’格式 //时间 function formatDate(date) { var y = date.getFullYear(); ; m = m ...
- Ubuntu下安装和配置Apache2,小编觉得挺不错的,现在就分享给大家
本篇文章主要介绍了详解Ubuntu下安装和配置Apache2,小编觉得挺不错的,现在就分享给大家,也给大家做个参考.有兴趣的朋友可以了解一下.(http://xz.8682222.com) 在Ubun ...
- DRF 序列化组件单增
目录 自定义序列化(矬) Serializer类(方式繁琐) 底层序列化类 UserSerializer 视图序列化步骤 底层反序列化类 UserCreatSerializer 视图反序列化步骤 Mo ...
- 容斥原理——状态压缩zoj3233 zoj2836升级版
zoj2836就是裸的求lcm进行容斥,用dfs比较直观 zoj3233增加了一个集合b,lcm(b)的倍数是不符合条件的 那么在zoj2836的基础上,把lcm(x,lcm(b))造成的影响减去即可 ...
- vue如何关闭sourceMap
Vue打包后出现一些map文件的解决办法: 问题: 可能很多人在做vue项目打包,打包之后js中,会自动生成一些map文件,那我们怎么把它去掉不要呢? 1,运行 cnpm run build 开始 ...
- echarts的使用——vue
在vue的项目开发中,数据的可视化可以用echarts来实现,具体用法如下: (1)安装echarts,进入项目目录,执行如下命令,安装echarts: npm install echarts (2) ...
- 【机器学习】机器学习入门08 - 聚类与聚类算法K-Means
时间过得很快,这篇文章已经是机器学习入门系列的最后一篇了.短短八周的时间里,虽然对机器学习并没有太多应用和熟悉的机会,但对于机器学习一些基本概念已经差不多有了一个提纲挈领的了解,如分类和回归,损失函数 ...
- _strupr _wcsupr _mbsupr
将字符串转化为大写的形式(Convert a string to uppercase.)定义: char *_strupr( char *string ); wchar_t *_wcsupr( wch ...
- (补充)10.Hibernate框架的查询方式
技术分析之Hibernate框架的查询方式 1. 唯一标识OID的检索方式 * session.get(对象.class,OID) 2. 对象的导航的方式 3. HQL的检索方式 * Hibernat ...
- 浪潮云+/云加 App 智能化的企业移动办公平台官网下载地址
上Google?Facebook? 点这里: 手机端:https://ecm.inspur.com/ 桌面端:https://ecm.inspuronline.com/