我是靠谱客的博主 懵懂水杯,最近开发中收集的这篇文章主要介绍.NET Code WebApi CentOS部署,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

准备

Visual Studio Code

CentOS 7

FTP

创建webapi项目

>dotnet new webapi

项目简单模拟通过POST调用接口,读取配置文件发送消息,返回发送结果

创建这几个文件:

ServerConfig.cs//用于读取配置文件

Modes>Message.cs//模拟发消息的实体类

Controllers>MessageControllers.cs//控制器

ServerConfig.cs

 

Modes>Message.cs

Controllers>MessageControllers.cs//控制器

这里顺便提一下web api的知识,有人经常遇到[FromBody]Message message,接收到实体的时候得到的是null,也没有抛异常,这个问题通常是传参的时候,有字段没法反序列化的原因,比如一个int类型的属性ID,传参的时候比如是“123456789”。

代码完成我们来测试一下:

可以看到,运行正常,为了在外网能够访问,我们修改一下默认端口比如5354

 

测试的代码就绪,那么开始发布。

 

webapi> dotnet publish -c Release

这些就是我们将要发布的文件。

登录Linux

执行命令,可以登录微软官网查看。

sudo rpm -Uvh https://packages.microsoft.com/config/rhel/7/packages-microsoft-prod.rpm

sudo yum update
sudo yum install dotnet-sdk-2.1

 执行完成后,新建目录比如: 

/var/wwwroot/dotnet/

通过FTP把刚才发布的文件上传到该目录下

可以看到可以正常运行了。

 

 正常运行,但是过程并没有这么顺利,因为sdk版本不一致,项目的是2.1.500,所以安装一下2.1.200.

执行这个命令的时候

sudo yum install dotnet-sdk-2.1
安装的版本是2.1.500。

安装一下版本:

安装完后,再运行

删除以下目录。

 

现在再运行即可正常。

控制台退出后,那么进程也结束了,把它做成服务。

配置文件webapi.service

[Unit]
Description=Example .NET Web API App running on Ubuntu

[Service]
#涉及到磁盘写操作,改行必须配置 WorkingDirectory=/var/wwwroot/dotnet
#注意这行,/usr/bin/dotnet必须加上 ExecStart=/usr/bin/dotnet /var/wwwroot/dotnet/webapi.dll Restart=always RestartSec=10 KillSignal=SIGINT User=root Environment=ASPNETCORE_ENVIRONMENT=Production Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false [Install] WantedBy=multi-user.target

 

至此完成。

转载于:https://www.cnblogs.com/hunter2014/p/10034084.html

最后

以上就是懵懂水杯为你收集整理的.NET Code WebApi CentOS部署的全部内容,希望文章能够帮你解决.NET Code WebApi CentOS部署所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部