创建ASP.NET Core网站时,您可以选择使用.NET Core或.NET Framework,具体取决于(除其他外)您的站点是否将使用.NET Framework组件 .
我需要在我的站点中引用常规的.NET Framework类库,因此我选择了.NET Framework选项 .
但是,此类库使用app.config文件中定义的appSettings . 现在,如果我在我的ASP.NET核心网站中放置一个app.config文件,并创建一个appSettings部分并用我需要的字段填充它,一切正常 .
但是,这些是敏感键(连接字符串等),所以我希望能够将它们放在外部文件中,如下所述:http://www.hanselman.com/blog/BestPracticesForPrivateConfigDataAndConnectionStringsInConfigurationInASPNETAndAzure.aspx
但是,当我这样做时,我在外部库中得到一个异常,配置设置为空 . 我引用了外部文件,该文件与项目根目录中的app.config位于同一目录中(不是wwwroot文件夹),但值总是为空 . 我试图将外部配置文件放在绝望的wwwroot文件夹中,但这也不起作用 .
外部引用在.NET Framework项目中工作正常,以及我用来测试它的控制台应用程序;只有.NET Core网站似乎无法将其作为外部引用处理 . 它只能在app.config文件中直接使用 .
指向app.config中的appSettings的configSource或file选项在ASP.NET Core中不受支持,或者我错过了一个步骤?
如果无法完成,我怎样才能将必要的配置传递给不是用.net核心构建的外部类库?
编辑:总结:类库使用System.Configuration,而不是针对.net核心或标准 .
我在.NET Framework上使用ASP.NET核心的网站,我的问题是app.config工作,但只有appSettings在app.config文件中 .
我想将它们移动到外部文件(因此appSetting值不会被检入源),但这似乎不起作用 .
我的问题不是配置不起作用,而是我不能将它们的值放在单独的文件中 .
1 回答
.NET Core目前不支持
System.Configuration
,因此您不能在此处使用与.NET Framework相同的方法 . 有关在开发期间保护配置中的敏感信息的指导,请参阅https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets