栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

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

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

.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();

替换成:

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

        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,问题解决!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/984810.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号