.NetCore WebApi Swagger简单配置 + 部署到Linux系统(教程+坑总结)

.NetCore WebApi Swagger简单配置 + 部署到Linux系统(教程+坑总结)

.NetCore WebApi Swagger简单配置 + 部署到Linux系统(教程+坑总结)

1.创建一个webapi项目
在这里插入图片描述
2.引入Swagger包。.Net Core 中支持两个分别为Swashbuckle和NSwag。两者的配置大同小异。这里以Swashbuckle为例。
方式1:选择工具——Nuget包管理——管理解决方案的Nuget包

在这里插入图片描述
搜索:Swashbuckle.AspNetCore 安装即可
在这里插入图片描述
安装之后在项目的Nuget包中就可以看到了
在这里插入图片描述
3.配置Swagger中间件

3.1 在Startup类ConfigureServices方法中添加Swagger服务并配置文档信息

public void ConfigureServices(IServiceCollection services)
        {
            // 注册Swagger服务
            services.AddSwaggerGen(c =>
            {
                // 添加文档信息
                c.SwaggerDoc("v1", new Info { Title = "CoreWebApi", Version = "v1" });
            });
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
        }

3.2 在 Startup类Configure 方法中,启用中间件为生成的 JSON 文档和 Swagger UI 提供服务

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }
      
            app.UseHttpsRedirection();
            // 启用Swagger中间件
            app.UseSwagger();

            // 配置SwaggerUI
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "CoreWebApi");
               
            });
            app.UseMvc();
        }

到了这里有个小坑需要注意一下:使用服务的时候,json路径的那个版本号和上面注册服务的版本号必须一致
在这里插入图片描述

右键项目属性,将URL地址固定到某个端口
在这里插入图片描述
然后将启动项设置为当前项目,然后启动。
在这里插入图片描述
配置好后,我们启用一下看看,出现下面这个页面:这是初始化页面自带的调试文档
在这里插入图片描述
这个页面不是我们想要的,出现这个原因是我们没有修改launchSettings.json配置文件。

接下来我们需要修改launchSettings.json文件(不知道这个文件的小伙伴搜一下就能找到了
在这里插入图片描述
我们需要把WeatherForecast改为swagger的index.html中:
在这里插入图片描述
好了,我们再把项目启动一下看看效果,出现的结果如下图:
在这里插入图片描述
swagger就配置好了 哈哈哈哈
4.发布到Lunix系统
接下来就是发布
在这里插入图片描述
在这里插入图片描述
选择文件夹,选择你要发布的项目的位置。
在这里插入图片描述
最后保存并发布就好了。

netcore项目的创建和发布就这样结束了。
第二步,你得准备一个linux服务器,然后安装环境

如果你条件允许,可以直接在阿里云或者腾讯云、华为云、百度云上买一个服务器。

新用户是白菜价哦,(这里真不是打广告)当然你可以在你电脑上安装一个VMware虚拟机。

具体安装步骤百度一下一大把,这里就不演示了。

我就在在百度云买了一个linux服务器,嗯,价格还算便宜,毕竟新用户,为什么用百度云??

当然不是因为他好,而是我阿里云已经不是新用户了

好了,我们继续。

用xshell登录到你的linux服务器上。(如果不懂linux,没关系,你总会百度吧)
登录成功后,你可以在直接输入如下命令(这个是在Linux上配置dontnet环境)

sudo yum install dotnet-sdk-2.2
在这里插入图片描述
点击确认,你需要等一段时间,如果你服务器网速很差,那么你可以会等很久。

如下图示,遇到这里你需要点击敲一下你的键盘上的 y 回车即可

这个时候系统开始慢慢的下载了,请耐心等待即可。
在这里插入图片描述
在这里插入图片描述
终于下载完成了
在这里插入图片描述
你可以输入下面的命令看看是否成功

dotnet --version
显示如下,表示按照成功
在这里插入图片描述
然后我们把发布包上传到服务器上来

我这里用的是xftp工具,当然也有其他工具可,下图所示是我安装的两个工具,大家可以去下载安装。
在这里插入图片描述
注意这两二个是便于我们更好管理Linux的,一定要版本一致比如都下载6
这里给大家提供一些我在网盘保存的一些工具

Xshell+Xftp真正破解版 https://pan.baidu.com/s/1Ew1XPg11sakpc8mvK6QsHg

打开xftp并连接到服务器,如下所示

在这里插入图片描述
我这里用的root权限,这里进来就直接就是root根目录了

然后右键点击创建一个目录用来保存你上传的netcore文件,嗯,就取名netcore吧
在这里插入图片描述
在这里插入图片描述
然后在左边找到你刚刚发布的那个包的位置,并且点击右边的netcore进入到对应的目录中
在这里插入图片描述
然后文件就开始传输了
在这里插入图片描述
然后输入命令cd 进入到我们上传的这个发布包中。

然后在输入命令 ll

cd netcore
ll
我们可以找到WebApiTest.dll文件
在这里插入图片描述
然后输入命令

dotnet WebApiTest.dll
如图所示,就恭喜你你的项目运行正常。
在这里插入图片描述
然后你Ctrl+C结束掉这个程序,这里只能在服务器内部访问,外面是不能访问的。

然后输入如下命令

dotnet WebApiTest.dll --server.urls “http://*:6666”
如图所示
在这里插入图片描述
然后用postman或者一些在线工具访问这个接口,如图所示,那么恭喜你成功了

这个测试工具的网站:https://www.sojson.com/httpRequest/
在这里插入图片描述
小编在把.net core2.2的web应用发布至Linux服务上出现如下问题:
在这里插入图片描述
在网上查找资料,网上的解决办法一般都是,配置nginx代理,设置为http://127.0.0.1:5000这种方式来解决,小编通过自己研究,提供了以下解决方案,亲测可用:

第一步:打开.net core应用程序,找到Program.cs文件,项目创建时自动生成的如下代码

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();

替换成:

    public static IWebHostBuilder CreateWebHostBuilder(string[] args)
    {
        var host = WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();

        var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
        if (environment != "Development")
        {
            var configuration = new ConfigurationBuilder()
                .AddCommandLine(args)
                .Build();

            host.UseUrls(configuration.GetSection("Urls").Value);
        }

        return host;
    }

保存,编译应用,上传发布文件至Linux服务器

第二步:在Linux服务器进入发布文件的文件夹,输入以下命令:

dotnet coreWebTest.dll --urls=http://0.0.0.0:5000 --ASPNETCORE_ENVIRONMENT=Production

回车

OK,问题解决!

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值