.netcore

1、用cmd 方式启动.net core 在.netcore 项目文件夹路径的地方输入cmd,或者打开cmd然后进入.net core 项目文件中。在cmd中输入dotnet run就将.net core 项目启动起来了,他是一个控制台引用程序,可以启动多个,来进行布置微服务。

Cmd启动asp.netcore 网站

在程序路径输入cmd,在路径点击backspace 然后输入cmd

 dotnet 程序名称.dll –urls=”http://*:5177”  这种方式是自定义端口号

2、动态调试.net core

 public void ConfigureServices(IServiceCollection services)
        {
            //能够动态调试
             services.AddRazorPages().AddRazorRuntimeCompilation();
            //注册服务器端缓存
            services.AddResponseCaching();
            services.AddControllersWithViews();
        }

3、服务器端缓存

   public void ConfigureServices(IServiceCollection services)
        {
            //能够动态调试
             services.AddRazorPages().AddRazorRuntimeCompilation();
            //注册服务器端缓存
            services.AddResponseCaching();
            services.AddControllersWithViews();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
                // 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();
            app.UseStaticFiles();

            app.UseRouting();
            //使用服务器端缓存
            app.UseResponseCaching();
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                //api模式
                //endpoints.MapControllers();
                //mvc模式
                endpoints.MapControllerRoute(
                    name: "default",
                    pattern: "{controller=Home}/{action=Home}/{id?}");
            });
        }

4、引入log4net.AspNetCore日志包

   通过nuget导入该包,在Program.cs类中public static IHostBuilder CreateHostBuilder这个函数里面增加

Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>//制定一个web服务器,-kestrel
                {
                    webBuilder.UseStartup<Startup>();
                }).ConfigureLogging((contenxt,loggingBuilder)=> {
                    loggingBuilder.AddFilter("System", LogLevel.Warning);
                    loggingBuilder.AddFilter("Microsoft",LogLevel.Warning);
                    loggingBuilder.AddLog4Net(); //使用log4net;
                });

然后添加一个log4net.config的文件。

文件内容是:

<?xml version="1.0" encoding="utf-8"?>
<log4net>
  <appender name="Console" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <!-- Pattern to output the caller's file name and line number -->
      <conversionPattern value="%date %5level %logger.%method [%line] - %property{scope} %property{test} MESSAGE: %message%newline %exception" />
    </layout>
  </appender>
  <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
    <file value="log/log.log" />
    <appendToFile value="true" />
    <maximumFileSize value="100KB" />
    <maxSizeRollBackups value="2" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date %5level %logger.%method [%line] - %property{scope} %property{test} MESSAGE: %message%newline %exception" />
    </layout>
  </appender>
  <appender name="TraceAppender" type="log4net.Appender.TraceAppender">
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date %5level %logger.%method [%line] - %property{scope} %property{test} MESSAGE: %message%newline %exception" />
    </layout>
  </appender>
  <appender name="ConsoleAppender" type="log4net.Appender.ManagedColoredConsoleAppender">
    <mapping>
      <level value="ERROR" />
      <foreColor value="Red" />
    </mapping>
    <mapping>
      <level value="WARN" />
      <foreColor value="Yellow" />
    </mapping>
    <mapping>
      <level value="INFO" />
      <foreColor value="White" />
    </mapping>
    <mapping>
      <level value="DEBUG" />
      <foreColor value="Green" />
    </mapping>
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date %5level %logger.%method [%line] - %property{scope} %property{test} MESSAGE: %message%newline %exception" />
    </layout>
  </appender>
  <root>
    <level value="DEBUG" />
    <appender-ref ref="RollingFile" />
    <appender-ref ref="TraceAppender" />
    <appender-ref ref="ConsoleAppender" />
  </root>
</log4net>

5、两种托管模式:进程外托管:利用。netcore 自带的kestrel,进程内托管:利用iis

双击打开项目,进入项目的配置文件,在PropertyGroup节点增加:  进程外:<AspNetCoreHostingModel>OutOfProcess</AspNetCoreHostingModel> 。进程内:

  <AspNetCoreHostingModel>InProcess</AspNetCoreHostingModel>

6、asp.netcore 源代码:https://github.com/aspnet/AspNetCore

7、中间件:如果在startup.cs中的Config函数中增加以下几行代码

app.Use(async (content, next) => {
                Console.WriteLine("1.start");
                await next();
                Console.WriteLine("1.end");
            });
            app.Use(async (content, next) => {
                Console.WriteLine("2.start");
                await next();
                Console.WriteLine("2.end");
            });
            app.Use(async (content, next) => {
                Console.WriteLine("3.start");
                await next();
                Console.WriteLine("3.end");
            });

然后运行:结果是

1.start

2.start

3.start

3.end

2.end

1.end

posted on 2020-06-28 22:25  流浪法师1  阅读(441)  评论(0编辑  收藏  举报