.net core webapi的初步尝试

1.创建webapi工程

选择asp.net core web

修改相关的设置

选择API这个类别,如果https这个选项勾上之后,程序会自动见http协议转换成https协议

2.基础描述:

程序的入口是main,主要是创建IHost对象和加载初始的设置。从这里也能看出整个程序实际就是一个命令行程序,这也是.net core 能跨平台使用的基石。

mian函数加载startup类

configureservices中用于加载相关的类,用于程序其他地方的依赖注入。(下面的代码就是在加载所有的controller类、数据库的连接上下文、相关的接口和对应的实现类。最后一个是用于解决跨遇问题的)

configure中用于加载相关中间件。需要注意的是app.UseRouting()的先后位置,这个中间件是用于路由的控制的。useCors对应的上面的addCors

controllers文件夹里面有一个默认的controller类

 

[ApiController]表示这个类为controller类被路由控制,[Route("[contorller]")]表示这个类的路由为“/weatherforecast”(去掉类名里面的controller,然后所有的字母都小写)。

带参数的构造行数将对象logger注入

[HttpGet] 表示被注解的方法被get方法请求,如果有多个get注释,则由路由根据路径判断访问具体的哪个函数,和函数名没有关系。

比如[HttpGet][Route("get")]这两个同时使用则表示路径为“/weatherforecast/get”。这两个注解也能合并成[HttpGet("get")]。

[HttpGet("{id}")]表示带参数的路由,参数名称为id。参数名称要和函数中的参数名称对应。

如果是post请求,则必须在前端请求的地方将对象作为参数传入。(下图是自己写的blazor webassambly项目中的一段代码)

后端在对应函数上面写上对象参数。(可以看到路由的departmentId就是第一个参数。上图中的红色框中的位置则为第二个参数。)

3.Dto部分,这块使用的是ef core,读者可以自行百度。

4.运行:本人在编码时不喜欢使用iis,所以在这个文件里面将iis的配置删除了(删除之后下图中启动的地方就不会再有iis的选项),这样在开发环境运行时会将程序部署到自带的服务器上面。这个applicationurl代表服务的地址;launchbrowser代表在开发环境下面运行时是否自动打开浏览器并访问默认路由;这个launchurl代表默认的路由地址。后面的环境变量和项目中的属性中对应,也可自定义。

5.发布:有多种发布模式,个人因为需求简单所以只是用了fdd模式,还有多种另外的两种模式,读者可自行百度。

发布完成之后,会在上图的目标位置新建一个publishabc这个文件夹。

6.部署:有两种部署方式,命令行部署(使用自托管Web服务器(Kestrel))和iis部署

a.命令行部署:打开上图中的文件路径,打开ps

输入dotnet --info 看看.net core环境是否安装完整。

输入dotnet WebApplication1.dll --urls http://*:7001 部署。这个语句表示部署webapplication1这个程序到http://*:7001本机的7001端口上

部署成功之后,就可以使用localhost和ip访问了。

b.iis部署:

iis功能如何打开,读者可以自行百度。

添加应用程序池(据说.net core 3+可以不在设置这个应用程序池,但是本人没有测试。)

在应用程序池上面点击右键,点击添加,注意修改相关配置。

在刚才建立的程序池上面点击右键选择高级设置,修改下图中的标识,

右键点击网站选择新建

选择上一步新建的程序池

选择ip和端口,一般ip地址都是本机ip地址,端口自行设置,只要不重复就行。设置完成之后点击确认。

如果.net core程序连接的是sqlserver数据库,则需要在sqlserver里面修改相关设置,其他的数据库,读者自行百度。

在用户上面点击右键,选择新建用户。。。。。。

新建完成之后,重启数据库,重启iis。

在前台访问刚才发布的服务http://localhost:7001/weatherforecast

7.总结:

a.这里千万要和前面运行环境里面的地址端口区分开,launchSettings.json中设置的都是开发时的配置,真正部署的ip和端口,是根据上面部署时的设置来的。

b.特殊错误,根据我自己的经验,win10好像是不自带dotnet-host的,在访问的时候,会提示500,需要下载安装,这个可以自行百度。

我本地自己测试的时候下载安装的版本是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值