效果图
在这里插入图片描述

1.新建.net core web api项目

选择src文件夹==》添加==》新建项目
在这里插入图片描述
输入框搜索:web api ==》选择ASP.NET Core Web API
在这里插入图片描述
输入项目名称选择位置项目src文件夹
在这里插入图片描述
我的项目net 7.0版本,实际选择请看自己项目规划
在这里插入图片描述

2.处理Program入口文件引入日志和新建Startup.cs

需要安装NuGet程序依赖包:Newtonsoft.Json、Serilog.AspNetCore、Serilog.Sinks.Async、Serilog.Sinks.File
在这里插入图片描述
Program文件代码如下

    /// <summary>
    /// 
    /// </summary&gt;
    public class Program
    {
        /// <summary&gt;
        /// 
        /// </summary&gt;
        /// <param name="args"&gt;</param&gt;
        public static int Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
#if DEBUG
                 .MinimumLevel.Debug()
#else
                .MinimumLevel.Information()
#endif
                 .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
                .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning)
                .Enrich.FromLogContext()
                .WriteTo.Async(c => c.File("Logs/logs.txt", rollingInterval: RollingInterval.Hour))
#if DEBUG
                 .WriteTo.Async(c => c.Console())
#endif
                 .CreateLogger();
            // Wrap creating and running the host in a try-catch block
            try
            {
                Log.Information("Starting host");

                CreateHostBuilder(args).Build().Run();
                return 0;
            }
            catch (Exception ex)
            {
                Log.Fatal(ex, "Host terminated unexpectedly");
                return 1;
            }
            finally
            {
                Log.CloseAndFlush();
            }

        }

        /// <summary>
        /// 载入Startup配置、以及新增日志
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        public static IHostBuilder CreateHostBuilder(string[] args) =>
           Host.CreateDefaultBuilder(args)
               .UseSerilog()
               .ConfigureWebHostDefaults(webBuilder =>
               {
                   var configuration = new ConfigurationBuilder().AddJsonFile("appsettings.json").Build();


                   var url = configuration["Urls"];
                   webBuilder.UseUrls(url);
                   webBuilder
#if !DEBUG
                    .UseEnvironment("ASPNETCORE_HOSTINGSTARTUPASSEMBLIES")
#endif
                   .UseStartup<Startup>();
               });

    }

Startup文件代码如下

/// <summary>
/// 
/// </summary>
public class Startup
{
    /// <summary>
    /// 
    /// </summary>
    /// <param name="configuration"></param>
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    /// <summary>
    /// 
    /// </summary>
    public IConfiguration Configuration { get; }

    /// <summary>
    /// This method gets called by the runtime. Use this method to add services to the container.
    /// </summary>
    /// <param name="services"></param>
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllers();
        services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new OpenApiInfo { Title = "这里替换成你新建webApi项目名称", Version = "v1" });
            var basePath = PlatformServices.Default.Application.ApplicationBasePath;
            var XmlPath = Path.Combine(basePath, "这里替换成你新建webApi项目名称.xml");//此处生成xml文档
            c.IncludeXmlComments(XmlPath);
        });
        //处理跨域问题
        services.AddCors(option => {
            option.AddPolicy("any", policy =>
            {
                policy.SetIsOriginAllowed(_ => true)   //允许所有客户端地址请求
                    .AllowAnyHeader()
                    .AllowAnyMethod()
                    .AllowCredentials();
            });
        });
        services.AddMemoryCache();
        services.AddHttpContextAccessor();
    }

    /// <summary>
    /// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    /// </summary>
    /// <param name="app"></param>
    /// <param name="env"></param>
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }

        app.UseSerilogRequestLogging();

        app.UseRouting();
        app.UseCors("any");//处理跨域问题
        app.UseSwagger();
        app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "这里替换成你新建webApi项目名称 v1"));
        app.UseAuthorization();

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapControllers().RequireCors("any");
        });
    }
}

appsettings.json代码如下

{
  "Logging": {
    "IncludeScopes": false,
    "Debug": {
      "LogLevel": {
        "Default": "Warning"
      }
    },
    "Console": {
      "LogLevel": {
        "Default": "Warning"
      }
    },
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "Urls": "http://*:44375;",
  "AllowedHosts": "*"
 
}

3.处理launchSettings.json文件,使本地启动项目时是以iis运行

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:44375",
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore"
      }
    },
    "这里替换成你新建webApi项目的名称": {
      "commandName": "Project",
      "launchBrowser": true,
      "dotnetRunMessages": true,
      "launchUrl": "swagger",
      "applicationUrl": "http://localhost:44375",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "SkyAPM.Agent.AspNetCore"
      }
    }
  }
}

处理在文件生成xml文档
在这里插入图片描述

4.在Controllers控制器接口

在项目的Controllers文件夹下,新建一个xxxxController.cs

 /// <summary>
 /// 名称
 /// </summary>
 [ApiController]
 [Route("outApi/[controller]/[action]")]
 public class xxxxController : ControllerBase
 {
     private readonly IHttpContextAccessor _httpContextAccessor;
     /// <summary>
     /// 
     /// </summary>
     public questionController(IHttpContextAccessor httpContextAccessor)
     {
         _httpContextAccessor = httpContextAccessor;
     }

     /// <summary>
     /// 获取请求客户端ip地址
     /// </summary>
     /// <returns></returns>
     [HttpGet]
     public async Task<string> testIP()
     {

         Log.Information("IP:" + Request.HttpContext.Connection.RemoteIpAddress.ToString() + "InputQuestion入参:" );
         string ipAddress = _httpContextAccessor.HttpContext.Connection.RemoteIpAddress?.ToString();
         return ipAddress;
     }
 }

5.设置项目启动项并运行

选择解决方案右键==>选择 配置启动项目==>弹窗选择 多个启动项目==》把新建的web api操作下拉框里改成启动==>点击应用按钮==>点击确定按钮
在这里插入图片描述
然后ctrl+F5运行
在这里插入图片描述
电脑桌面右下角有iis图标
在这里插入图片描述

6.打包发布

选择新建的web api项目==》点击 发布
在这里插入图片描述
配置选择”文件夹”如下
在这里插入图片描述
文件夹位置 路径默认不管
在这里插入图片描述
更改配置如下
在这里插入图片描述
然后点击发布按钮在这里插入图片描述

7.部署centos服务器,请参考我的另外一篇文章

【liunx配置服务自启动】liunx系统设置net Core程序开机自启动服务 centos系统

原文地址:https://blog.csdn.net/weixin_43861689/article/details/134726012

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_25736.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注