You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET(Blazor)中Serilog.Sinks.MongoDB如何在appsettings.json设置数据库名

Serilog.Sinks.MongoDB databaseName配置不生效解决方案

核心原因:Serilog.Sinks.MongoDB的配置优先级中,MongoDB连接字符串内指定的数据库名优先级高于单独配置的databaseName参数。你当前使用的连接字符串mongodb+srv://AtlasUser:XXXXXXX/test?retryWrites=true&w=majority&ssl=true中,路径段的test就是显式指定了默认数据库为test,因此你单独配置的databaseName: "MyLogs"会被覆盖,无法生效。

可选解决方案

  • 方案1:直接修改连接字符串内的数据库名
    把连接字符串中的test替换为目标库名MyLogs即可,databaseName参数可保留也可删除,连接字符串内的配置会优先生效。修改后的配置示例:
{
  "Name": "MongoDB",
  "Args": {
    "databaseUrl": "mongodb+srv://AtlasUser:XXXXXXX/MyLogs?retryWrites=true&w=majority&ssl=true",
    "databaseName": "MyLogs",
    "collectionName": "MyLoggerCollection",
    "cappedMaxSizeMb": "1024",
    "cappedMaxDocuments": "50000"
  }
}
  • 方案2:删除连接字符串内的数据库名声明,让databaseName参数生效
    将连接字符串中@符号后、参数前缀?之前的数据库名段删除,保留根路径即可,此时单独配置的databaseName参数会正常生效。修改后的配置示例:
{
  "Name": "MongoDB",
  "Args": {
    "databaseUrl": "mongodb+srv://AtlasUser:XXXXXXX/?retryWrites=true&w=majority&ssl=true",
    "databaseName": "MyLogs",
    "collectionName": "MyLoggerCollection",
    "cappedMaxSizeMb": "1024",
    "cappedMaxDocuments": "50000"
  }
}

内容的提问来源于stack exchange,提问作者nogood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 17:18:01