VS 2019 中 IIS Express 调试器的 .Net Core MVC appsettings.json 文件在哪里
Posted
技术标签:
【中文标题】VS 2019 中 IIS Express 调试器的 .Net Core MVC appsettings.json 文件在哪里【英文标题】:Where is the .Net Core MVC appsettings.json file for the IIS Express debugger in VS 2019 【发布时间】:2019-06-10 16:57:19 【问题描述】:我需要在我的 appsettings.json 文件中编辑一个连接字符串以调试 .Net Core MVC 应用程序。当我使用 IIS Express 调试器运行应用程序时,我的应用程序构建为 bin\Debug\netcoreapp2.2
。在此目录中,我正在使用测试所需的值编辑 appsettings.Development.json 配置文件。我知道应用程序正在提取 appsettings.json 文件的正确变体。但是,我不认为调试器正在查看bin\Debug\netcoreapp2.2
中的文件,因为当我编辑该文件时,我的应用程序中不存在更改。 IIS Express 调试器从哪里加载 appsettings.json 文件?
更多上下文的屏幕截图。
我从这个工具栏运行调试器。
调试器将文件构建到bin\Debug\netcoreapp2.2
。
然后我编辑必要的 appsettings.json 文件。该文件在以后的构建中不会被覆盖,因为我将“复制到输出目录”属性设置为“如果较新则复制”
我验证了 ASPNETCORE_ENVIRONMENT 变量设置为调试器的“开发”。
但是当我去调试我的应用程序时,我在项目的 appsettings.json 中获得了默认连接字符串,而不是在 bin\Debug\netcoreapp2.2
目录的 appsettings.json 中获得了修改后的连接字符串
【问题讨论】:
嗯,这并不理想。有没有办法将其配置为查看 bin 文件夹? 也许这个问题可以帮到你:***.com/questions/37858312/… @ChrisStillwell 为什么将它放在根文件夹中并不理想? @AliK,主要是因为我添加连接字符串的文件受源代码控制,我不想冒险将凭据意外推送到存储库。如果我可以编辑 bin 文件夹中的文件,我就不用担心了。 我会拥有 appsettings.json,这是您始终提交到源代码管理的主文件,然后是一个名为 appsettings.development.json 的副本,这是您在 Visual Studio 中启动应用程序时运行的副本。 .development.json 永远不会提交到源代码管理,每个开发人员都可以拥有自己的 .dev.json 文件副本。这种方法效果很好。 【参考方案1】:默认情况下,IConfiguration
读取项目文件夹下的*.json
文件。
要在其他地方读取*.json
文件比如bin/Debug/netcoreapp2.2
,你可以配置ConfigureAppConfiguration
比如
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.ConfigureAppConfiguration((hostingContext, config) =>
config.AddJsonFile(
"bin/Debug/netcoreapp2.2/appsettings.Development.json", optional: false, reloadOnChange: true);
);
然后像这样使用它
public class HomeController : Controller
private readonly IConfiguration configuration;
public HomeController(IConfiguration configuration)
this.configuration = configuration;
public IActionResult Index()
return Ok(configuration.GetConnectionString("DefaultConnection"));
//return View();
【讨论】:
这对我有用,我只是在新代码中添加了一个#if DEBUG
指令,所以我只在调试时读取该文件。谢谢。以上是关于VS 2019 中 IIS Express 调试器的 .Net Core MVC appsettings.json 文件在哪里的主要内容,如果未能解决你的问题,请参考以下文章
在 VS2013 中调试时的身份验证问题 - iis express
在 VS2012 中调试 MVC 应用程序尝试启动 IIS Express 两次
VS2015调试时没有启动IIS Express Web服务器