44

ASP.NET Core快速入门(第1章:介绍与引入)--学习笔记

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzAwNTMxMzg1MA%3D%3D&%3Bmid=2654076977&%3Bidx=3&%3Bsn=64b3ee170eaed92804fe06767f47291f
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

B36ZRbU.png!web

点击 蓝字 关注我们

B36ZRbU.png!web

课程链接:http://video.jessetalk.cn/course/explore

良心课程,大家一起来学习哈!

任务1:课程介绍

  • 1、介绍与引入

  • 2、配置管理

  • 3、依赖注入

  • 4、ASP.NET Core HTTP介绍

  • 5、认证与授权

  • 6、ASP.NET Core MVC

任务2:环境安装

下载地址:https://dotnet.microsoft.com/download

通过 visualstudio 安装:菜单栏上点击工具--获取工具和功能(T),勾选 .NET CORE

uauYfyv.png!web

打开 PowerShell(管理员),输入以下命令验证是否安装成功

PS C:\WINDOWS\system32> dotnet

任务3:在控制台创建ASP.NET Core应用程序

查看模板:

PS C:\WINDOWS\system32> dotnet new --help

新建项目 ASP.NET Core Web App (Model-View-Controller)

PS D:\jessetalk> mkdir aspdotnetcore
PS D:\jessetalk> cd .\aspdotnetcore\
PS D:\jessetalk\aspdotnetcore> dotnet new mvc

启动项目

PS D:\jessetalk\aspdotnetcore> dotnet run

浏览器访问:https://localhost:5001/

FZVzI33.jpg!web

任务4:在VS中创建ASP.NET Core应用程序

在 VS 中通过 IIS Express 启动

FB3MJnM.jpg!web

官方推荐在开发和测试的时候通过控制台启动,因为通过控制台启动之后,日志会自动输出

A3AVBbA.jpg!web

umIZjqM.png!web

任务5:部署到IIS

Windows10如何安装IIS:https://jingyan.baidu.com/article/eb9f7b6d9e73d1869364e8d8.html

下载 ASP.NET Core Module:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/servers/aspnet-core-module?view=aspnetcore-2.2

安装完成后在 iis 的模块下面可以找到以下模块

RjaQ3yZ.jpg!web

在 iis 中添加网站,停掉 Default 网站,新建文件夹sites,在sites里面新建文件夹aspdotnetcoredemo

NRVfMfJ.png!web

在应用程序池中修改 .NET CLR 版本,不然无法运行,因为托管代码指代码编译成IL代码后在dotnet framework下运行,aspdotnetcore需要修改为无托管代码才可以运行

vQb2UnE.png!web

在控制台发布

PS D:\jessetalk\aspdotnetcore> dotnet publish

发布结果

FJ3MRva.png!web

发布到指定目录

PS D:\jessetalk\aspdotnetcore> dotnet publish -o D:\jessetalk\sites\aspdotnetcoredemo

浏览发布的网站

7v63aqA.png!web

FZVzI33.jpg!web

通过 VS 发布:

清空该目录下面的内容:D:\jessetalk\sites\aspdotnetcoredemo,刷新浏览器

BjeAJrN.png!web

在 VS 中,项目右键--发布,通过文件夹发布

zYJJna7.png!web

刷新浏览器

FZVzI33.jpg!web

任务6:准备CentOS和Nginx环境

下载 vmware workstation

官网:https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html

下载 CentOS,选择 Minimal ISO

官网:https://www.centos.org/download/

第一次启动可能出现VMware与 Device/Credential Guard 不兼容 :https://jingyan.baidu.com/article/9f63fb916b50e1c8400f0ebf.html

手动安装组件:

网卡

vArm2mu.png!web

修改为 yes

riaA7f2.png!web

重启网卡

EFJZVbi.png!web

安装 ifconfig 命令

ZJVVJb2.png!web

得到 ip 地址 192.168.204.128 之后可以通过 putty 连接(SSH方式)

putty下载地址:https://putty.org/

使用 putty 连接 cenos 之后可以方便复制粘贴命令

安装 Nginx:https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-centos-7

安装完成后浏览器访问:192.168.204.128

bq6bequ.png!web

任务7:在CentOS上安装.NET Core运行时

cenos 安装 asp .net core 环境:https://www.asp.net/core/overview/aspnet-vnext

安装后验证:

[root@localhost ~]# dotnet
[root@localhost ~]# dotnet --version
[root@localhost ~]# dotnet new --help
[root@localhost ~]# cd /
[root@localhost /]# cd home
[root@localhost home]# mkdir netcore
[root@localhost home]# mkdir helloCore
[root@localhost home]# cd helloCore
[root@localhost helloCore]# dotnet new webapi
[root@localhost helloCore]# dotnet run

通过另一个 putty 连接访问

[root@localhost ~]# curl http://localhost:5000/api/values

任务8:部署到CentOS

下载 FileZilla :https://filezilla-project.org/

通过 ftp 将之前发布在 sites 目录下的文件上传到 cenos 上的 netcore 文件夹里

NjqMbir.jpg!web

启动网站

[root@localhost home]# cd netcore
[root@localhost netcore]# ls
appsettings.Development.json  aspdotnetcore.pdb                 web.config
appsettings.json              aspdotnetcore.runtimeconfig.json  wwwroot
aspdotnetcore.deps.json       aspdotnetcore.Views.dll
aspdotnetcore.dll             aspdotnetcore.Views.pdb
[root@localhost netcore]# dotnet aspdotnetcore.dll
Hosting environment: Production
Content root path: /home/netcore
Now listening on: http://localhost:5000
Now listening on: https://localhost:5001
Application started. Press Ctrl+C to shut down.

通过另一个 putty 访问

[root@localhost ~]# curl http://localhost:5000

使用 nginx 将 80 端口 映射到 5000 端口 下

[root@localhost ~]# cd /etc/nginx
[root@localhost nginx]# ls
conf.d                  koi-utf             scgi_params
default.d               koi-win             scgi_params.default
fastcgi.conf            mime.types          uwsgi_params
fastcgi.conf.default    mime.types.default  uwsgi_params.default
fastcgi_params          nginx.conf          win-utf
fastcgi_params.default  nginx.conf.default
[root@localhost nginx]# vi nginx.conf

注释掉 nginx.conf 文件中默认 80 的 server

#    server {
#        listen       80 default_server;
#        listen       [::]:80 default_server;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        location / {
#        }
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }

nginx.conf 文件中将所有 .conf 文件引入进来

#        include /etc/nginx/default.d/*.conf;

修改 netcore.conf

[root@localhost nginx]# cd conf.d
[root@localhost nginx]# vi netcore.conf

netcore.conf

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;
        }
}

重启 nginx

[root@localhost conf.d]# nginx -s reload
[root@localhost conf.d]# systemctl restart nginx

浏览器访问:http://192.168.204.128/

2aQBbyy.png!web

RFvQJ37.png!web

yIRR32u.jpg!web

点“在看”给我一朵小黄花

QZNnumV.png!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK