linux 环境下部署 Asp.Net Core 项目 访问 oralce 数据库
1.ASP.NET Core 是一个跨平台的高性能开源框架,可以部署到Linux上,那项目部署在Linux上有哪些好处呢?
1、linux硬件需求小,大部分版本免费,成本低。
2、linux的用户管理严格,病毒难以破坏。
3、linux是模块化的,可裁减,出现问题只要关闭一个模块,windows只有微软自己才会裁减。
4、linux是多用户多进程系统,适合做服务器。
5、linux上还有一个最大的好处,可以使用docker容器,Docker是一个开源的应用容器引擎,开发者可以打包他们的应用及依赖到一个可移植的容器中,发布到流行的Linux机器上,也可实现虚拟化,对服务器的部署很方便。
2.安装.NET Core SDK
Linux各个发行版如何安装.NET Core SDK,微软官方已经给出了标准答案,我这里就把在CentOS上的安装方法做一个简要说明。
Step1:安装dotnet产品提要
要开始安装.NET,您需要注册Microsoft签名密钥并添加Microsoft产品提要。每台机器只需要做一次。 打开命令提示符并运行以下命令:
sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
sudo sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
Step2:安装.NET SDK
更新可用于安装的产品,安装.NET所需的组件,然后安装.NET SDK。
在命令提示符下,运行以下命令:
sudo yum update
sudo yum install libunwind libicu
sudo yum install dotnet-sdk-2.1. #最新版本请关注官网
两步即可完成.NET Core SDK在CentOS7系统下的安装,最后可执行一下命令dotnet --version
,如果正常输出版本号则说明安装没有出现问题。
3.部署ASP.NET Core应用程序
下面就尝试把我用ASP.NET Core Web API 开发的一个接口网站部署到我们已经安装.NET SDK的CentOS系统(下文简称服务器)中。
程序发布过程省略,把编译后的程序发布到了本地文件夹中。
然后借助FTP工具FileZilla把程序文件传输到Linux服务器的一个文件夹中。
上传完毕后,进入该项目的目录,输入如下命令启动程序:
dotnet Demo.Jwt.dll #程序动态库文件
如果你可以看到如下界面则表示程序启动成功。
4.Nginx配置反向代理
由于程序启动成功后,只能本地http://localhost:5000访问,要想跨域访问,就必须用Nginx把http://localhost:5000反向代理出去
Nginx是一个高性能的Web服务器软件。这是一个比Apache HTTP Server更加灵活和轻量级的程序
4.1安装Nginx
Step1:添加Nginx存储库
要添加CentOS 7 EPEL仓库,请打开终端并使用以下命令:
sudo yum install epel-release
Step2:安装Nginx
现在Nginx存储库已经安装在您的服务器上,请使用以下yum
命令安装Nginx:
sudo yum install nginx
Step3:启动Nginx
Nginx不会自行启动。要运行Nginx,请输入:
sudo systemctl start nginx
如果您正在运行防火墙,请运行以下命令以允许HTTP和HTTPS通信:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
此时,可以在本机的浏览器中访问服务器的IP地址http://服务器IP地址
来验证Nginx是否成功运行。
如果拒绝访问,考虑服务器80
端口是否开放。可尝试通过下面两条命令开放80
端口、重启防火墙使修改即时生效。
firewall-cmd --zone=public --add-port=/tcp --permanent
systemctl restart firewalld
4.2设置Nginx开机启动
systemctl enable nginx #设置开机启动
其他命令:
systemctl disable nginx #禁止开机启动
systemctl status nginx #查看运行状态
systemctl restart nginx #重启服务
4.3修改Nginx配置文件
首先,拿到Nginx的默认配置文件/etc/nginx/nginx.conf
,把默认80
端口转发配置server
节点用#
符注释掉。
然后,我们新建一个配置文件netcore.conf
,内容如下:
server {
listen ;
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的配置加载目录/etc/nginx/conf.d
,最后执行命令nginx -s reload
重启Nginx即可。
5、Asp.Net Core 项目中使用 Dapper + Oracle.ManagedDataAccess.Core 连接oracle数据库
在vs2017中工具菜单中=》NuGet包管理工具中 分别安装这两个包
这个Dapper 就不展开说明了,可以百度。百度上有很多例子
关键的 oracle连接字符串写法说明下,使用了Oracle.ManagedDataAccess.Core 连接oracle数据库,按照这样的连接字符串就不用再安装oracle客户端了,省了很多事情,尤其是Linux环境下。
注意:在Linux中千万不能用 System.Data.OracleClient.dll 来访问oracle数据库,Linux 下不支持 System.Data.OracleClient.dll ,我被这个问题被坑了 好久好久,总认为是oracle客户端没有配置好。
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.123.85)(PORT=))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User Id=his;Password=his
linux 环境下部署 Asp.Net Core 项目 访问 oralce 数据库的更多相关文章
- 在Linux CentOS上部署Asp.Net Core项目(Tengine、Asp.Net Core、Centos、MySql)
一.前言 1.简单记录一下Linux CentOS 7中安装与配置Tengine的详细步骤. 2.简单比较一下Tengine 和Nginx 3.搭建Asp.net Core和部署 Web程序 4.总结 ...
- 在Linux(Ubuntu)下搭建ASP.NET Core环境并运行 继续跨平台
最新教程:http://www.cnblogs.com/linezero/p/aspnetcoreubuntu.html 无需安装mono,在Linux(Ubuntu)下搭建ASP.NET Core环 ...
- k8s+Jenkins+GitLab-自动化部署asp.net core项目
0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 此文阅读目录: 1.闲聊 ...
- Linux+Nginx+Supervisor部署ASP.NET Core实操手册
一.课程介绍 在上一节课程<ASP.NET Core托管和部署Linux实操演练手册>中我们学过net core的部署方式多样性和灵活性.我们通过远程工具输入dotnet 程序集名称.dl ...
- Web Server 在IIS上部署ASP.NET Core项目
在IIS上部署ASP.NET Core项目 一.配置应用程序池为无托管: 二.安装ASPNETCoreModule:(核心) 下载地址:https://go.microsoft.com/fwlink/ ...
- .NET开发框架(五)-IIS上部署ASP.NET Core项目教程
系列教程:从初学者到架构师的一步步蜕变 本篇经验将和大家介绍如何在IIS上部署ASP.NET Core项目,希望对初学.NET CORE的童靴入门有所帮助! 1.打开VS,创建项目,选择ASP.NET ...
- Centos下使用Docker部署asp.net core项目
本文讲述 CentOS 系统 Docker 中部署 asp.net core开源项目 abp 的过程 步骤 1. 拉取 asp.net core 基础镜像 docker pull microsoft/ ...
- 从零实操基于WSL2 Docker部署Asp.Net Core项目
前言 平日在公司里都是基于阿里Teambition中的飞流进行Docker部署Api项目或服务,已经习惯了那一套成熟的操作流程,开发和部署确实快捷方便,但是还没在自己的电脑上进行操作过,特别是Wind ...
- Django Linux环境下部署CentOS7+Python3+Django+uWSGI+Nginx(含Nginx返回400问题处理、防火墙管理)
本文将介绍如何在Linux系统上部署Django web项目,本次部署基于下面的架构: CentOS7+ Python3.5 + Django1.11 + uWSGI + Nginx 亲测可行!!按照 ...
随机推荐
- Wireshark分析实战:某达速递登录帐号密码提取
- 准备工作 首先,备好Wireshark,打开,在外网网卡上抓包. 其次,用浏览器访问http://www.yundaex.com/cn/index.php,并在手机上下载安装其APP,找到登录页面 ...
- Toast实现源码解析
说明 本篇文章用于介绍Android中Toast的实现原理.和简单实现一个自定义的Toast. Toast实现 一般常用Toast格式为: Toast.makeText(context,"t ...
- Android应用打开外部文件
我们有时候遇到要打开一个文件,我们可以选择用其他应用打开,这时弹出来的应用列表,那么我们如何让自己开发的应用也能出现在里面呢? 第一步:设置启动Activity的intent-filter,给data ...
- mssql sqlserver 数据类型sql_variant简介说明
转自: http://www.maomao365.com/?p=9712 摘要: 下文讲述sqlserver中sql_variant数据类型定义.赋值.应用的相关说明,如下所示: 实验环境:sql ...
- 网络流媒体协议之——RTSP协议
RTSP(Real-Time Stream Protocol)协议是一个基于文本的多媒体播放控制协议,属于应用层.RTSP以客户端方式工作,对流媒体提供播放.暂停.后退.前进等操作.该标准由IETF指 ...
- luoguP1040 加分二叉树
在做各类DP的时候都要思路清晰! #include<cstdio> #include<algorithm> using namespace std; const int N = ...
- 【Maven】如何使用pom.xml引入自定义jar包
这里我以这个jar包为例,aliyun-java-sdk-core-3.2.3.jar ,这是我在做手机短信服务用到的jar包 ①进入C盘下的maven仓库C:\Users\用户\.m2\reposi ...
- day76_10_23自定义签发token,其他drf组件
一.签发token的原理 当认证类authentication_classes是JSONWebTokenAuthentication时,其父类JSONWebTokenAPIView只有post 方法, ...
- MySQL学习笔记3——DCL
DCL(数据控制语言) 1.创建用户 *CREATE USER 用户名@IP地址 IDENTIFIED BY '密码'; >用户只能在指定的IP地址上登录*CREATE USER 用户名@'%' ...
- JDOJ3007 铺地板I
JDOJ3007 铺地板I https://neooj.com/oldoj/problem.php?id=3007 题目描述 有一个大小是 2 x N(1 <= N <= 105)的网格, ...