求“No XML encryptor configured.”警告的正确Warning ID,添加35无效
解决无法抑制DataProtection日志警告的问题
你遇到的问题核心是:这个No XML encryptor configured. Key {xxx} may be persisted to storage in unencrypted form.提示不是编译警告,而是ASP.NET Core运行时输出的日志警告,所以用csproj里的<NoWarn>配置完全无效——代码里的35是日志事件ID,不是编译警告编号。
正确的抑制方式
方式1:通过配置文件过滤
在appsettings.json(或对应环境的配置文件)中添加日志级别过滤,将Microsoft.AspNetCore.DataProtection的警告级别提升到Error及以上,即可屏蔽该警告:
{ "Logging": { "LogLevel": { "Microsoft.AspNetCore.DataProtection": "Error" } } }
方式2:通过代码精准过滤
如果只想屏蔽特定事件ID(35)的警告,不想影响该组件的其他日志,可以在Program.cs中添加自定义日志过滤规则:
var builder = WebApplication.CreateBuilder(args); // 仅屏蔽事件ID为35的DataProtection警告 builder.Logging.AddFilter((category, level, eventId) => { return !(category == "Microsoft.AspNetCore.DataProtection" && eventId.Id == 35 && level == LogLevel.Warning); });
内容的提问来源于stack exchange,提问作者Serj Sagan
相关产品推荐
相关产品推荐

