XiaoQi.Study 之 .net core webapi (三)
1、配置跨域
1)、首先注册跨域要求 ,(可访问的IP、端口)
//注册跨域 services.AddCors(options => { options.AddPolicy("XiaoQiAllowOrigins", builder => { builder.WithOrigins("http://localhost:8080") .AllowAnyHeader() .AllowAnyMethod(); }); });
2)、启用注册好的跨域
app.UseCors("MyAllowOrigins");
2、控制器全局异常过滤
1)、在Filter 文件夹下 创建GlobalExceptionFilter.cs。该类必须继承“IExceptionFilter”
public class GlobalExceptionFilter : IExceptionFilter { private readonly IWebHostEnvironment _env; private readonly ILogger<GlobalExceptionFilter> _logger; public GlobalExceptionFilter(IWebHostEnvironment env, ILogger<GlobalExceptionFilter> logger) { _env = env; _logger = logger; } public void OnException(ExceptionContext context) { string msg = string.Empty; if (_env.IsDevelopment()) { msg = context.Exception.StackTrace; LogHelper.Error(msg); } else { msg = context.Exception.Message;//错误信息
LogHelper.Error(msg);
} throw new NotImplementedException(); } }
2)、在注册控制器的地方,为控制器添加全局过滤
//注册Controller services.AddControllers(o=> { o.Filters.Add(typeof(GlobalExceptionFilter));//控制器异常监控 })
3、log4.net 简单使用
1)、安装log4.net 包
2)、在common 文件下创建LogHelper
public class LogHelper { private static ILoggerRepository repository { get; set; } private static ILog _log; private static ILog log { get { if (_log == null) { Configure(); } return _log; } } public static void Configure(string repositoryName = "NETCoreRepository", string configFile = "log4net.config") { repository = LogManager.CreateRepository(repositoryName); XmlConfigurator.Configure(repository, new FileInfo(configFile)); _log = LogManager.GetLogger(repositoryName, ""); } public static void Info(string msg) { log.Info(msg); } public static void Warn(string msg) { log.Warn(msg); } public static void Error(string msg) { log.Error(msg); } }
3)、添加log4net.config
<?xml version="1.0" encoding="utf-8" ?> <configuration> <!-- This section contains the log4net configuration settings --> <log4net> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file value="LogFile/" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <staticLogFileName value="false" /> <datePattern value="yyyyMMdd'.log'" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="1MB" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> <!-- Setup the root category, add the appenders and set the default level --> <root> <level value="ALL" /> <appender-ref ref="RollingLogFileAppender" /> </root> </log4net> </configuration>
4)、在startup文件中启用LogHelper的配置方法,为其读取配置
public Startup(IConfiguration configuration) { Configuration = configuration; LogHelper.Configure(); //使用前先配置 }
5)、在需要的地方使用,如控制器全局异常过滤中的使用
4、提升地址
分类:
c#
, asp.net core
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~