.Net Core 2.1 not reading User Secrets
I am running a .net core 2.1 application on a mac and I am trying to access my connections string which should be overridden by my user secrets. The .csproj file includes a guid
<UserSecretsId>{{Secret Guid}}</UserSecretsId>
Add the user secret keys
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Secret Connection String"
I create the configuration which reads from my appsettings.json file perfectly however it does not replaces the default values with the ones from my user secrets.
// this is done so I build my configurations in a class library
var assembly = AppDomain.CurrentDomain.GetAssemblies()
.Single(o => o.EntryPoint != null);
var configurationBuilder = new ConfigurationBuilder()
.AddEnvironmentVariables()
// .AddUserSecrets<Program>() -> This does not work either
.AddUserSecrets(assembly, optional: false);
configurationBuilder.SetBasePath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
configurationBuilder.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
var configuration = configurationBuilder.Build();
Console.WriteLine(configuration["ConnectionStrings:DefaultConnection"]);
As I stated previously trying to access the values it does not replace the values with the user secrets values. Please let me know what I am missing.
c# asp.net-core-2.1
add a comment |
I am running a .net core 2.1 application on a mac and I am trying to access my connections string which should be overridden by my user secrets. The .csproj file includes a guid
<UserSecretsId>{{Secret Guid}}</UserSecretsId>
Add the user secret keys
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Secret Connection String"
I create the configuration which reads from my appsettings.json file perfectly however it does not replaces the default values with the ones from my user secrets.
// this is done so I build my configurations in a class library
var assembly = AppDomain.CurrentDomain.GetAssemblies()
.Single(o => o.EntryPoint != null);
var configurationBuilder = new ConfigurationBuilder()
.AddEnvironmentVariables()
// .AddUserSecrets<Program>() -> This does not work either
.AddUserSecrets(assembly, optional: false);
configurationBuilder.SetBasePath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
configurationBuilder.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
var configuration = configurationBuilder.Build();
Console.WriteLine(configuration["ConnectionStrings:DefaultConnection"]);
As I stated previously trying to access the values it does not replace the values with the user secrets values. Please let me know what I am missing.
c# asp.net-core-2.1
add a comment |
I am running a .net core 2.1 application on a mac and I am trying to access my connections string which should be overridden by my user secrets. The .csproj file includes a guid
<UserSecretsId>{{Secret Guid}}</UserSecretsId>
Add the user secret keys
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Secret Connection String"
I create the configuration which reads from my appsettings.json file perfectly however it does not replaces the default values with the ones from my user secrets.
// this is done so I build my configurations in a class library
var assembly = AppDomain.CurrentDomain.GetAssemblies()
.Single(o => o.EntryPoint != null);
var configurationBuilder = new ConfigurationBuilder()
.AddEnvironmentVariables()
// .AddUserSecrets<Program>() -> This does not work either
.AddUserSecrets(assembly, optional: false);
configurationBuilder.SetBasePath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
configurationBuilder.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
var configuration = configurationBuilder.Build();
Console.WriteLine(configuration["ConnectionStrings:DefaultConnection"]);
As I stated previously trying to access the values it does not replace the values with the user secrets values. Please let me know what I am missing.
c# asp.net-core-2.1
I am running a .net core 2.1 application on a mac and I am trying to access my connections string which should be overridden by my user secrets. The .csproj file includes a guid
<UserSecretsId>{{Secret Guid}}</UserSecretsId>
Add the user secret keys
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Secret Connection String"
I create the configuration which reads from my appsettings.json file perfectly however it does not replaces the default values with the ones from my user secrets.
// this is done so I build my configurations in a class library
var assembly = AppDomain.CurrentDomain.GetAssemblies()
.Single(o => o.EntryPoint != null);
var configurationBuilder = new ConfigurationBuilder()
.AddEnvironmentVariables()
// .AddUserSecrets<Program>() -> This does not work either
.AddUserSecrets(assembly, optional: false);
configurationBuilder.SetBasePath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
configurationBuilder.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
var configuration = configurationBuilder.Build();
Console.WriteLine(configuration["ConnectionStrings:DefaultConnection"]);
As I stated previously trying to access the values it does not replace the values with the user secrets values. Please let me know what I am missing.
c# asp.net-core-2.1
c# asp.net-core-2.1
asked Nov 24 '18 at 20:04
Dblock247Dblock247
1,54542440
1,54542440
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The order you add configuration sources to your ConfigurationBuilder
is critical - those added later override those added first. In your example, you are calling AddUserSecrets
before AddJsonFile
, which results in your JSON file values overriding those defined in your user secrets.
For the sake of completeness, here's a fixed version:
var configurationBuilder = new ConfigurationBuilder()
.AddEnvironmentVariables();
configurationBuilder.SetBasePath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
configurationBuilder.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
// configurationBuilder.AddUserSecrets<Program>(); -> This does not work either
configurationBuilder.AddUserSecrets(assembly, optional: false);
In light of this, you might also want to move the AddEnvironmentVariables
call to run later in the configuration setup.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53461918%2fnet-core-2-1-not-reading-user-secrets%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The order you add configuration sources to your ConfigurationBuilder
is critical - those added later override those added first. In your example, you are calling AddUserSecrets
before AddJsonFile
, which results in your JSON file values overriding those defined in your user secrets.
For the sake of completeness, here's a fixed version:
var configurationBuilder = new ConfigurationBuilder()
.AddEnvironmentVariables();
configurationBuilder.SetBasePath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
configurationBuilder.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
// configurationBuilder.AddUserSecrets<Program>(); -> This does not work either
configurationBuilder.AddUserSecrets(assembly, optional: false);
In light of this, you might also want to move the AddEnvironmentVariables
call to run later in the configuration setup.
add a comment |
The order you add configuration sources to your ConfigurationBuilder
is critical - those added later override those added first. In your example, you are calling AddUserSecrets
before AddJsonFile
, which results in your JSON file values overriding those defined in your user secrets.
For the sake of completeness, here's a fixed version:
var configurationBuilder = new ConfigurationBuilder()
.AddEnvironmentVariables();
configurationBuilder.SetBasePath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
configurationBuilder.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
// configurationBuilder.AddUserSecrets<Program>(); -> This does not work either
configurationBuilder.AddUserSecrets(assembly, optional: false);
In light of this, you might also want to move the AddEnvironmentVariables
call to run later in the configuration setup.
add a comment |
The order you add configuration sources to your ConfigurationBuilder
is critical - those added later override those added first. In your example, you are calling AddUserSecrets
before AddJsonFile
, which results in your JSON file values overriding those defined in your user secrets.
For the sake of completeness, here's a fixed version:
var configurationBuilder = new ConfigurationBuilder()
.AddEnvironmentVariables();
configurationBuilder.SetBasePath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
configurationBuilder.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
// configurationBuilder.AddUserSecrets<Program>(); -> This does not work either
configurationBuilder.AddUserSecrets(assembly, optional: false);
In light of this, you might also want to move the AddEnvironmentVariables
call to run later in the configuration setup.
The order you add configuration sources to your ConfigurationBuilder
is critical - those added later override those added first. In your example, you are calling AddUserSecrets
before AddJsonFile
, which results in your JSON file values overriding those defined in your user secrets.
For the sake of completeness, here's a fixed version:
var configurationBuilder = new ConfigurationBuilder()
.AddEnvironmentVariables();
configurationBuilder.SetBasePath(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location));
configurationBuilder.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
// configurationBuilder.AddUserSecrets<Program>(); -> This does not work either
configurationBuilder.AddUserSecrets(assembly, optional: false);
In light of this, you might also want to move the AddEnvironmentVariables
call to run later in the configuration setup.
answered Nov 25 '18 at 21:00
Kirk LarkinKirk Larkin
21.3k44058
21.3k44058
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53461918%2fnet-core-2-1-not-reading-user-secrets%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown