.netcore 3.1应用程序在哪里可以获得appsettings.json



所以我一直在绞尽脑汁,试图弄清楚为什么我的应用程序突然停止与数据库对话。我终于发现连接字符串是不正确的,但无论我更改了多少次appsettings.json,项目都不会接受它。

因此,我在startup.cs中放置了一些断点,以查看正在使用的连接字符串。我不知道它是从哪里来的,我以为是appsetting.json.

因此,我删除了我的appsetting.json(和appsetting.Development.json(,但程序加载时仍然使用了不正确的连接字符串。

当我把这个项目加载到另一台电脑上时,它运行得很好,所以我不认为这个项目是坏的。所以交给你的大脑,相信它是从哪里来的。

以下是一些代码片段:

启动.cs

public void ConfigureServices(IServiceCollection services)
{
services.Configure<CookiePolicyOptions>(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
services.AddDbContext<TerritoryContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));

services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<ApplicationUser>().AddRoles<IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>().AddDefaultUI();
services.AddMvc(option => option.EnableEndpointRouting = false)
.SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
services.Configure<IdentityOptions>(options =>
{
// Default Lockout settings.
options.Lockout.DefaultLockoutTimeSpan = TimeSpan.FromMinutes(30);
options.Lockout.MaxFailedAccessAttempts = 5;
options.Lockout.AllowedForNewUsers = true;
});
services.AddAntiforgery(o => o.HeaderName = "XSRF-TOKEN");
services.AddResponseCompression(options =>
{
options.Providers.Add<BrotliCompressionProvider>();
options.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(new[] { "text/json" });
});
services.Configure<BrotliCompressionProviderOptions>(options =>
{
options.Level = CompressionLevel.Optimal;
});
services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo { Title = "API Docs", Version = "v1" }); });
services.AddApplicationInsightsTelemetry();
}

程序.cs

public static class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}

好吧,很明显,我在某个时候启用了本地机密,但我不知道我启用了。有一次我修复了应用程序设置的魅力。

最新更新