Core WebApi项目快速入门(一):环境部署

1.WebApi新建与部署

1.1 新建Core WebApi工程

1.2 部署

1.2.1 IIS部署

首先以文件方式发布应用程序,然后下载依赖.net core运行时及host安装包

 

 在iis中看见AspNetCoreModuleV2证明安装成功。

1.2.2 直接控制台启动

由于内置了Kestrl,可以不依赖与任何服务器服务

 看到启动的Hosting的生命周期,证明已成功启动站点。同时根据配置文件默认监听http 5000端口及https 5001端口。

2. Swagger配置

2.1 引入依赖库文件

2.2 添加swagger服务

 public void ConfigureServices(IServiceCollection services)
        {
            services.AddSwaggerGen(s =>
            {
                s.SwaggerDoc("V1", new OpenApiInfo
                {
                    Title = "test",
                    Version = "version-01",
                    Description = "我的第一个API"
                });
            });
            services.AddControllers();
        }
View Code

2.3 添加swagger中间件

 app.UseSwagger();
            app.UseSwaggerUI(s =>
            {
                s.SwaggerEndpoint("/swagger/V1/swagger.json", "test");
            });
View Code

3. 日志配置

3.1 引入log4net及扩展库dll

3.2 加入log4net.config配置文件

<?xml version="1.0" encoding="utf-8"?>
<log4net>
    <!-- Define some output appenders -->
    <appender name="rollingAppender" type="log4net.Appender.RollingFileAppender">
        <file value="log\log.txt" />

        <!--追加日志内容-->
        <appendToFile value="true" />

        <!--防止多线程时不能写Log,官方说线程非安全-->
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />

        <!--可以为:Once|Size|Date|Composite-->
        <!--Composite为Size和Date的组合-->
        <rollingStyle value="Composite" />

        <!--当备份文件时,为文件名加的后缀-->
        <datePattern value="yyyyMMdd.TXT" />

        <!--日志最大个数,都是最新的-->
        <!--rollingStyle节点为Size时,只能有value个日志-->
        <!--rollingStyle节点为Composite时,每天有value个日志-->
        <maxSizeRollBackups value="20" />

        <!--可用的单位:KB|MB|GB-->
        <maximumFileSize value="3MB" />

        <!--置为true,当前最新日志文件名永远为file节中的名字-->
        <staticLogFileName value="true" />

        <!--输出级别在INFO和ERROR之间的日志-->
        <filter type="log4net.Filter.LevelRangeFilter">
            <param name="LevelMin" value="ALL" />
            <param name="LevelMax" value="FATAL" />
        </filter> 
        <!--必须结合起来用,第一个只过滤出WARN,第二个拒绝其它其它日志输出-->
        <!--
        <filter type="log4net.Filter.LevelMatchFilter">
            <param name="LevelToMatch" value="WARN" />
        </filter>
        <filter type="log4net.Filter.DenyAllFilter" />-->

        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger - %message%newline"/>
        </layout>
    </appender> 
    <!-- levels: OFF > FATAL > ERROR > WARN > INFO > DEBUG  > ALL -->
    <root>
        <priority value="ALL"/>
        <level value="ALL"/>
        <appender-ref ref="rollingAppender" />
    </root>
</log4net>
View Code

3.3 配置log4net

 public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
            .ConfigureLogging(logging =>  //支持IOC控制反转
            {
                logging.AddFilter("System", LogLevel.Warning);
                logging.AddFilter("Microsoft", LogLevel.Warning);
                logging.AddLog4Net();
            })
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                });
    }
View Code

 

到此,一套最基础的webapi环境已搭建完成。

 

posted @ 2020-08-01 10:26  原来名字可以这么长  阅读(429)  评论(0编辑  收藏  举报