- 确保在配置Serilog Logger之前,没有已经添加过相同的ConnectionStrings键值对
- 如果使用了多个配置文件,检查是否在多个配置文件中定义了ConnectionStrings键值对
- 尝试删除appSettings.json文件并重新生成
- 将ConnectionStrings键值对添加到appSettings.Development.json文件中,而不是appSettings.json文件中,因为在开发环境中通常会使用该文件
- 在添加ConnectionStrings时,使用TryAdd方法而不是Add方法,因为如果键值对已存在,则TryAdd方法不会引发异常
例如,在Blazor Server应用程序的Startup.cs文件中,可以按以下方式配置Serilog Logger,并使用TryAdd方法添加ConnectionStrings:
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
// Configure Serilog Logger
var logger = new LoggerConfiguration()
.ReadFrom.Configuration(Configuration)
.CreateLogger();
services.AddLogging(loggingBuilder => loggingBuilder.AddSerilog(logger));
// Use TryAdd method to add ConnectionStrings
services.TryAddSingleton();
var connectionString = Configuration.GetConnectionString("DefaultConnection");
services.TryAddSingleton(new SqlConnectionFactory(connectionString));
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// ...
}
}