问题标签 [asp.net-core-configuration]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
13964 浏览

c# - 从 ServiceCollection 获取 IConfiguration

我正在编写自己的扩展方法ServiceCollection来注册我的模块的类型,我需要IConfiguration从集合中访问实例来注册我的选项。

扩展方法

这是IConfiguration从集合中获取实例的正确方法还是有更优雅的解决方案?我不想将 IConfiguration 实例作为参数添加到方法中。

0 投票
1 回答
80 浏览

c# - 将配置选项从 netcoreapp1.1 移植到 netcoreapp2.0

在 netcoreapp1.1 中,我的配置是在 中定义的Startup,其中包含:

但在 netcoreapp2.0 中,配置是在Program. 所以Startup现在只有这个:

那么如何获取IConfigurationRootin ConfigureServices(),以便设置强类型Stuff1Stuff2选项以及连接字符串等其他内容?

0 投票
1 回答
653 浏览

asp.net-core - 配置 ASP.NET Core 应用程序的“prod”和“dev”

我尝试为我的 ASP.NET Core 2.0 应用程序设置“dev”和“prod”环境,但它不起作用......这是我的配置:

内容appsettings.json(完全一样appsettings.Development.json

仅用于appsettings.Production.json连接字符串和域名更改:

Startup.cs:_

secrets.json位于用户文件夹中)内容

最后是访问数据库的类(在我的例子中是 AzureTables)

知道MyAppTablesConnectionString“生产”中的“空”,也许问题来自那里,但我不知道如何使它与连接字符串MyAppContextMyAppTablesConnectionString连接字符串一起工作......

0 投票
1 回答
7862 浏览

asp.net-core-2.0 - 为每个环境部署不同的连接字符串

我正在尝试从 mac 在 IIS 上部署一个 asp.net core 2.0 api 项目。

我想做的是为我的开发、登台和生产环境设置不同的 appsettings.json 文件,然后使用 dotnet -build 作为我的部署脚本的一部分调用不同的环境。

我查看了适用于旧版本 .net 核心的https://docs.microsoft.com/en-us/aspnet/core/fundamentals/environments,但我无法理解我需要做什么. 我不想为操作系统设置环境,而是以编程方式设置它(因为我的登台和生产环境用于同一台服务器)

我有一个 appsettings.Development.json 文件,当我运行我的应用程序时会使用它,但是当我只是将环境变量设置为构建命令的一部分时,我似乎无法加载我的 appsettings.Production.json 文件。

最终,我试图根据我构建的环境部署特定的连接字符串。有一个更好的方法吗?

更新

@Chris 在下面的回答有所帮助,此外我还发现了以下内容:

每个 IIS 应用程序池 如果您需要为在隔离的应用程序池中运行的单个应用程序设置环境变量(在 IIS 10.0+ 上受支持),请参阅 IIS 参考文档中环境变量主题的 AppCmd.exe 命令部分。

这让我可以为每个应用程序池设置不同的环境

0 投票
2 回答
1801 浏览

asp.net-core - 从 appsettings.json 获取 ConnectionStrings 配置设置

在我的存储库类中,我有我的 Config 对象,看起来我的连接字符串位于:

这就是我的appsettings.json样子:

我正在尝试阅读myConnectionString以下内容,但这是行不通的:

我究竟做错了什么?

更新:出于某种原因,我没有看到GetValue()方法。我正在使用ASP.NET Core 2.0.

在此处输入图像描述

0 投票
1 回答
179 浏览

iis - 托管 .net 核心应用程序在使用将 json 添加到配置时给出了 502.5

我正在尝试在使用 IIS 的 A2hosting 共享托管 Windows 选项上托管 .net 核心应用程序。但是,一旦我UserSecretsId在 .csproj 文件中使用了秘密管理器,我就得到了 502.5 错误。这很奇怪,因为生产不使用秘密管理器。在进行了一些挖掘之后,我发现在我的 .csproj 文件中添加以下行可以再次消除 502.5 错误:

现在,我需要将我的秘密存储在 web 文件夹之外。我正在尝试在我的 program.cs 中使用以下代码进行设置:

此代码带回错误 502.5。当我单独注释掉该AddJsonFile行时,错误就消失了。我试图了解什么是错的AddJsonFile

总之,这个问题似乎围绕着IConfiguration(与秘密经理和AddJsonFile)有关。

知道如何使该AddJsonFile功能正常工作吗?访问外部 json 文件有什么好的替代方法吗?我正在尝试一些不乱的东西,比如读取一个 while 文件并将其序列化为AddInMemoryCollection函数。是一种记录显示为 502.5 的错误的方法吗?我注意到出现此错误时,中间件无法运行。这意味着我不能在其中使用 ILogger。

0 投票
1 回答
4127 浏览

c# - Configuration.GetSection 返回空值

我无法让我Configuration.GetSection返回数据.Value。我想我实施了这个问题的所有建议,但仍然无法让它发挥作用。

应用设置.json

启动:

配置服务:

亚马逊设置类:

我正在尝试通过 IOptions 访问 AmazonSettings.Value:

当我调试时,值为空:

调试 - 值为空

0 投票
1 回答
1647 浏览

c# - 解决 IOptions在单元测试中

我有这样的课程:

我想进行单元测试并只维护依赖注入。所以为了做到这一点,我尝试了以下方法:

但是,我收到以下错误:

尝试激活“测试”时无法解析类型“Microsoft.Extensions.Options.IOptions`1[Test]”的服务。

如何将 IOptions 添加到注入?我以为这样services.AddSingleton<IConfiguration>(configurationRoot);可以解决问题,但似乎没有。另外,我的配置是正确的,如果我在我的主项目中使用相同的 appsettings,就没有问题。

0 投票
1 回答
24423 浏览

c# - Microsoft.Extensions.Configuration 究竟如何依赖 ASP.NET Core?

ASP.NET Core 是否实现IConfiguration对配置值的访问?

很可能我的问题出现了,因为我不明白 ASP.NET Core 到底是什么。好吧,我知道它是一个 Web 框架,不确定,但看起来它是 .NET 中的命名空间,或者是一个包......我知道在 php 中,一个框架可以是一组类(命名空间)或编译库是作为扩展提供的,所以我假设 .NET 中也有类似的方法。

最初,我还没有打算围绕 ASP.NET Core。我需要为我的简单控制台 C# 应用程序(VS Code 和 .NET Core)存储一些配置。我发现了很多主题(例如这里:如何从控制台应用程序中的 config.json 读取值)来读取 JSON(推荐)配置。鉴于此,我添加了三个必要的 nugget 包:

我需要使用:

这将返回一个实现IConfigurationRoot/IConfiguration接口的对象。但是所有示例都是在 ASP.NET Core 上下文中给出的。我有一个非常简单的应用程序,我还不需要任何 ASP.NET 功能。

所以我尝试在IConfigurationRoot没有 ASP.NET 的情况下访问。结果对象存储来自配置文件的值,但没有其接口的所有方法来访问它们。

如何在 .NET 命名空间的上下文中解释这一点?IConfigurationASP.NET Core 是否实现了从like访问值的方法Get<T>()

如果Microsoft.Extensions.Configuration是 的一部分或严重依赖Microsoft.AspNetCore.App,为什么它在不同的命名空间中?

如果我添加 ASP.NET Core(NuGet 包和命名空间),会不会有点矫枉过正?

也许我应该使用除了ConfigurationBuilder阅读 JSON 之外的东西?

0 投票
1 回答
416 浏览

dependency-injection - ASP.NET 核心。使用 Type 参数配置 IOptions 方法(非通用)

有没有办法使用非通用参数Configure从容器调用方法?IServiceCollection DI

我想注册我的配置部分,而不是如下:

但是通过这种方式:

我想这样做是因为我想通过List<Type>从低级应用程序级别(DAL)到高级()的集合传递我的配置部分Web api。然后通过这个集合只做一个循环,注册每个部分。

所以,最终我不会在例子DALWeb API级别之间有很强的依赖关系。

有什么想法吗?