首页 > 其他分享 >WebApi 单文件发布Serilog 失效

WebApi 单文件发布Serilog 失效

时间:2023-03-17 10:56:22浏览次数:42  
标签:WebApi Assembly Name Serilog Args API 失效 Sinks

提问

WebApi 单文件发布Serilog 失效怎么解决

回答

配置文件Appsetting.json增加Using块
"Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],

示例

{
  "Serilog": {
    "Using":  [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ],
    "MinimumLevel": "Debug",
    "WriteTo": [
      { "Name": "Console" },
      { "Name": "File", "Args": { "path": "Logs/log.txt" } }
    ],
    "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
    "Destructure": [
      { "Name": "With", "Args": { "policy": "Sample.CustomPolicy, Sample" } },
      { "Name": "ToMaximumDepth", "Args": { "maximumDestructuringDepth": 4 } },
      { "Name": "ToMaximumStringLength", "Args": { "maximumStringLength": 100 } },
      { "Name": "ToMaximumCollectionCount", "Args": { "maximumCollectionCount": 10 } }
    ],
    "Properties": {
        "Application": "Sample"
    }
  }
}

原因

API 不兼容
某些 API 与单文件部署不兼容。 如果应用程序使用这些 API,可能需要进行修改。 如果使用第三方框架或包,则它们可能使用了这样的 API 并需要修改。 出现问题的最常见原因是依赖于应用程序附带的文件或 DLL 的文件路径。

下表提供了用于单文件的相关运行时库 API 详细信息。

API 注意
Assembly.CodeBase 引发 PlatformNotSupportedException。
Assembly.EscapedCodeBase 引发 PlatformNotSupportedException。
Assembly.GetFile 引发 IOException。
Assembly.GetFiles 引发 IOException。
Assembly.Location 返回空字符串。
AssemblyName.CodeBase 返回 null。
AssemblyName.EscapedCodeBase 返回 null。
Module.FullyQualifiedName 返回值为 的字符串,或引发异常。
Marshal.GetHINSTANCE 返回 -1。
Module.Name 返回值为 的字符串。

参考

https://github.com/serilog/serilog-settings-configuration#net-50-single-file-applications

https://learn.microsoft.com/zh-cn/dotnet/core/deploying/single-file/overview?tabs=cli

标签:WebApi,Assembly,Name,Serilog,Args,API,失效,Sinks
From: https://www.cnblogs.com/wuhailong/p/17225802.html

相关文章

  • 在ASP.NET WEBAPI中使用Autofac注入Hangfire
    一、配置环境   .NETFramework4.6.1  ASP.NETWEBAPI<packageid="Autofac"version="5.2.0"targetFramework="net461"/><packageid="Autofac.Mvc5"ver......
  • Mysql——索引失效
         ......
  • @Transactional失效:捕获异常未抛出
    失效场景:@Transactional(rollbackFor=Exception.class)publicMap<String,Object>saveEngineer(){Map<String,Object>map=Maps.newHashMap();......
  • @Transaction注解的失效场景
    作者:京东物流孔祥东背景事情是这样,最近在实现一个需求的时候,有一个定时异步任务会捞取主表的数据并置为处理中(为了防止任务执行时间过长,下次任务执行把本次数据重复捞取),然......
  • C# 关于 SET IDENTITY_INSERT TableN ON 失效
    设置自增标识列的脚本不能单独执行,是没有效果的,需要在同一域执行,才会生效SETIDENTITY_INSERTBiz_Sell_ProduceshippingONINSERTINTOBiz_Sell_ProduceshippingVAL......
  • 安全编码案例(52)go结构体方法未使用指针,结构体实例的锁失效
    摘要:go结构体方法未使用指针,结构体实例的锁失效【问题描述】go结构体方法未使用指针,结构体实例的锁失效【错误代码片段】给结构体定义一把锁在函数中调用锁实测锁......
  • 【教学典型案例】01.redis只管存不管删除让失效时间删除的问题
    目录​​一:背景介绍​​​​二:redis​​​​1)redis数据类型​​​​①String(字符串)​​​​②Hash(哈希)​​​​③List(列表)​​​​④Set(集合)​​​​2)缓存同步​​​​①设......
  • spring事务失效的场景
    spring事务的七种传播机制事务方法发生了相互调用,事务如何传播:a调用bREQUIRED(spring默认的事务传播级别):如果当前(a)没有事务,则(b)新建一个事务,如果当前存在事务,则加入这......
  • WebApi问题与跨域和返回json
    1、编写接口时,发现访问不到指定接口注释掉[Authorize]特性给方法设置访问方式,已经指定路由方法如下2、出现一下跨域问题在web.config里面配置2、返回类型指定接口......
  • 解决vue中v-html元素中标签样式失效问题
    最近在项目中遇到移动端和pc端样式冲突的问题。加上scoped会导致v-html下绑定的标签样式不生效、第三方引用的类库对其修改也不生效,特此总结一下几点,用来解决: Vue为v-......