.NET CORE 这么久了一直没有成功打通过,今天花了点儿时间做了一个小DEMO,首次完成并且部署上线。记录一下。

DEMO中只是测试了一下从MSSQL中获取数据,并且显示在页面上,涉及到了数据库连接,以及相关的部署步骤。一直到域名绑定。

最终上线的网址:http://test.core.68weitang.cn/ 因服务器过一段时间即到期,该网址有可能无法访问,相关源代码附在最后。

项目结构图:

引用了Business类库项目,Business业务层实现具体的业务,这个项目只做了连接MSSQL数据库,随机获取10条数据,转换成List<AccountVO>的对象。

Layouts项目就是调用Business业务层获取数据列表。代码如下:

后台代码。

代码完成之后,发布即可。

整个代码部分的工作就完成了,接着咱们来做部署方面的工作。

测试的服务器是阿里云的一台最低配置的ECS,1个CPU,500M内存,系统装的是CentOS 7.6的版本。

之前一直在安装linux的环境上面有很大的问题,上传文件要装XFTP,WEB服务器要使用nginx等,对于没怎么深入玩过LINUX的人,很头疼。后来发现宝塔这个软件非常好用,强烈推荐,安装也比较简单。

官方文档地址:https://www.bt.cn/bbs/thread-19376-1-1.html,其实就一个命令就行了,非常简单。安装完成之后,会显示宝塔的用户名和密码,这个需要记录下,后面会用到。类似于下图

安装宝塔,主要是解决在LINUX中上传文件,配置WEB服务器等,比较方便,这个并不是必须要装的,如果LINUX经验比较充足的话,可以不用这个。我下面的都是基于宝塔页面操作的。

将我们发布的CORE的程序,打包截图如下。

登录宝塔:点击左侧的文件菜单,下面是截图示例。

点击上传

选中当前的文件,点右下角的开始上传,如果碰到文件上传的失败的问题,有可能是宝塔的版本的问题,或是文件太大,这个我碰到过。

文件后面有个解压的操作项,直接解压就行 。

解压完成之后,整体目录下面就是这样了。

打开CRT软件,使用ROOT登录上服务器之后,用这个命令 dotnet --info,看一下是否有效,如果无效,就说明没有安装NET CORE,我这个DEMO是使用的CORE 2.2,打开微软的安装地址,选择对应的服务器安装即可。

https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install  需要注意的是,要选择对应的服务器。

安装完成之后,再输入dotnet --info 应该就显示和我下面的截图一样了。

咱们回到CRT中来,宝塔的中上传的文件,一般是放在www/wwwroot/目录下,CRT里面用CD /www/wwwroot/即可到了该目录。这个我还找了半天,不会玩的人真是醉了。

cd之后,可以用ls查看一下目录,我截图大家看一下。

上面能看到我们所有发布的WEB文件了,因为己经在宝塔里面解压了,当然咱们的ZIP那个压缩文件也在。

再使用 dotnet web项目名称.dll,我们这个项目的命令大概是这个样子

dotnet DN.Core.Layouts.Web1.dll

下面的截图能看到启动了4001和4002两个端口

这个说明就成功了。

一般情况下,用服务器加端口的方式应该是能访问的。我这里面因为要用域名访问,所以需要在宝塔中安装nginx服务器做转发。

进入宝塔页面,左侧菜单 软件商店,安装即可。安装完成后有个设置项,如下截图。

设置里面需要配置域名和对应的转发端口,即80对应的域名转发到咱们的4001服务上。

我把这个项目中使用的配置文件放在这里,大家可以参考一下。

 user  www www;
worker_processes auto;
error_log /www/wwwlogs/nginx_error.log crit;
pid /www/server/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200; events
{
use epoll;
worker_connections 51200;
multi_accept on;
} http
{
include mime.types;
#include luawaf.conf; include proxy.conf; default_type application/octet-stream; server_names_hash_bucket_size 512;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 50m; sendfile on;
tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on; gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\."; limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn_zone $server_name zone=perserver:10m; server_tokens off;
access_log off; server
{
listen 888;
server_name phpmyadmin;
index index.html index.htm index.php;
root /www/server/phpmyadmin; #error_page 404 /404.html;
include enable-php.conf; location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
} location ~ .*\.(js|css)?$
{
expires 12h;
} location ~ /\.
{
deny all;
} access_log /www/wwwlogs/access.log; listen 80;
server_name test.core.68weitang.cn; location / {
proxy_pass http://127.0.0.1:4001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
}
}
include /www/server/panel/vhost/nginx/*.conf;
}

其中的87-99行是我加的代码,从域名映射到4001的端口。大家可以参考一下。

然后打开上面的域名就可以了。

另外,在这个过程中,阿里云的ECS可能会对端口有限制,这个需要在阿里云里面进行相关的设置。

第一次将CORE的程序跑在LINUX服务器上还是比较开心的,个人感觉难点,还是在LINUX服务器的安装配置这块,如果没用宝塔,真的是好麻烦,自己以前也用LINUX配置过,在安装部署的过程就是碰到各种问题,一直没有将CORE的程序发布成功,这次用了一下宝塔,感觉还是比较方便的。

代码有些是从其它项目中摘过来的,可能很不规范,因为只是做个示例DEMO。

文件下载地址,https://files.cnblogs.com/files/sp1086/DN.Core.Sample.zip

换成百度网盘吧,博客园的下载不好使了。

链接: https://pan.baidu.com/s/1zjmXUiDaINN_IdFOnseXUA 提取码: 49k5

下一步,计划把自己的一个小网站用CORE实现一下试试。到时候把代码也放上来。

记第一次使用NET CORE 2.2 完成的DEMO部署在LINUX并且上线的更多相关文章

  1. 详解C#泛型(二) 获取C#中方法的执行时间及其代码注入 详解C#泛型(一) 详解C#委托和事件(二) 详解C#特性和反射(四) 记一次.net core调用SOAP接口遇到的问题 C# WebRequest.Create 锚点“#”字符问题 根据内容来产生一个二维码

    详解C#泛型(二)   一.自定义泛型方法(Generic Method),将类型参数用作参数列表或返回值的类型: void MyFunc<T>() //声明具有一个类型参数的泛型方法 { ...

  2. winserver的consul部署实践与.net core客户端使用(附demo源码)

    winserver的consul部署实践与.net core客户端使用(附demo源码)   前言 随着微服务兴起,服务的管理显得极其重要.都知道微服务就是”拆“,把臃肿的单块应用,拆分成多个轻量级的 ...

  3. 边缘化搭建 DotNet Core 2.1 自动化构建和部署环境(下)

    写在前面 本篇文章是上一篇边缘化搭建 DotNet Core 2.1 自动化发布和部署(上)的后续操作,本文主要讲解如何开启Docker Remote API,开启Remote API后的权限安全问题 ...

  4. .NET Core部署到linux(CentOS)最全解决方案,常规篇

    本文为大家介绍使用 .NET Core部署到Linux服务器的方法,通过本文你将了解到Linux在虚拟机下的安装.Xshell,Xftp的使用方法.git在linux下的交互使用以及.net core ...

  5. 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台

    使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台. 前面讲解了VSCode开发调试 .NET Core.都只是在windows下运行. .NET Core真正的核心是跨平 ...

  6. 从零开始,将ASP.NET Core部署到Linux生产环境

    研究.NET Core已经一段时间了,一直都是在Windows上开发,这2天尝试着将公司一个很简单的内部Web项目改造成了ASP.NET Core,并且部署到Linux上.生产环境如下: Linux ...

  7. NET Core站点部署到Linux服务器

    .NET跨平台之旅:将QPS 100左右的ASP.NET Core站点部署到Linux服务器上 今天下午我们将生产环境中一个单台服务器 QPS(每秒请求数)在100左右的 ASP.NET Core 站 ...

  8. 部署到Linux使用VS Code 开发.NET Core 应用程序

    使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台 使用VS Code 开发.NET Core 应用程序 部署到Linux 跨平台. 前面讲解了VSCode开发调试 .NE ...

  9. .NET Core跨平台:.NET Core项目部署到linux(Centos7)

    1.开篇说明 a 上篇博客简单的说明了一下 使用.NET Core开发的一个总结,地址是:(http://www.cnblogs.com/hanyinglong/p/6442148.html),那么这 ...

随机推荐

  1. Win2003下配置iis+php+mysql+zend

    所需软件: ActivePerl.PHP.MYSQL.Zend (一.安装IIS6.0;二.配置PHP环境;三.安装mysql;四.安装 Zend Optimizer;五.配置PHPMYADMIN) ...

  2. Linux系统中的load average(平均负载/运行队列)

    1.load average 的含义 系统负载(System Load)是系统CPU繁忙程度的度量,即有多少进程在等待被CPU调度(进程等待队列的长度) linux系统中的Load对当前CPU工作量的 ...

  3. FCOS及其和Faster R-CNN的区别

    RetinaNet,SSD,YOLOv3,Faster R-CNN等都是Anchor-based的检测器,即需要预定义的Anchor boxes来进行训练.FCOS是一种Anchor-free和Pro ...

  4. Python Treelib 多叉树 数据结构 中文使用帮助文档

    树,对于计算机编程语言来说是一个重要的数据结构.它具有广泛的应用,比如文件系统的分层数据结构和机器学习中的一些算法.这里创建了treelib来提供Python中树数据结构的高效实现. 官方文档:htt ...

  5. 免费音乐播放器-airplay(网上收集,仅供学习与研究,支持正版)

    AirPlay媒体播放器无需安装,并不会修改注册表,生成桌面快捷方式,加入启动菜单及快速启动. 因此,您只需要下载本软件,保存在任何地方即可使用.使用方便,界面酷炫. 自动下载和显示歌词.专辑封面.汇 ...

  6. Springboot将数据存储到数据库当中

    1.从前端获取数据,同时存储到use当中 public String login(HttpServletRequest request) { User user = new User(); user. ...

  7. 以opencv320和vs2013为例说明 vs路径配置方法

    =========================================== 新方法 ======================= 新方法的配置过程,路径之类的设置都是一样. 区别在于,在 ...

  8. Netty之ChannelHandler(三)

    ChannelHandler是netty中的核心处理部分,我们使用netty的绝大部分代码都写在这部分,所以了解它的一些机制和特性是很有必要的. 一.Channel Channel接口抽象了底层soc ...

  9. Gson:

  10. LeetCode 102. Binary Tree Level Order Traversal02. 二叉树的层次遍历 (C++)

    题目: Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to ri ...