【问题标题】:Keys from debug/release.config always nulldebug/release.config 中的键始终为空
【发布时间】:2019-01-28 20:01:15
【问题描述】:

在我拥有的调试和发布配置文件中:

<?xml version="1.0"?>

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <system.web>
  </system.web>

  <appSettings>
    <add key="GlobalValue1" value="hello" />
  </appSettings>

</configuration>

但是,控制器始终将密钥读取为空,我已将站点发布为调试和发布,无论哪种方式,变量都被视为空。

我使用以下方法引用密钥:

ConfigurationManager.AppSettings["GlobalValue1"];

并使用以下命令将其返回到前端:

public string SendKey()
{
    return ConfigurationManager.AppSettings["GlobalValue1"];
}

结果始终为空。

在搜索解决方案时,答案是用户试图在本地运行时查看它,并且它在发布时会起作用,但我发布并且值仍然为空。

【问题讨论】:

  • 你的配置文件中还有&lt;configuration&gt;标签吗?
  • 你的配置文件在哪里?检查你的二进制/dll的输出文件夹,看看它是否确实存在。
  • @500-InternalServerError 我已将完整的配置 xml 添加到问题中

标签: c# asp.net model-view-controller configuration key


【解决方案1】:

您需要区分 Web 或 App 配置文件及其转换。所有站点都有一个基础 Web.config 或 App.Config,它具有您在站点开发过程中使用的属性。这些属性可能会或可能不会分别用于站点的调试和发布版本,这就是 Web.Release.config 和 Web.Debug.config 发挥作用的时候。

在这些文件中,您应该通过替换或删除值来说明您转换 web.config 或 app.config 的方式。您可以在此处阅读更多详细信息:https://docs.microsoft.com/en-us/aspnet/web-forms/overview/deployment/visual-studio-web-deployment/web-config-transformations

假设您在 (web/app).config 中定义了以下内容:

<appSettings>
  <add key="GlobalValue1" value="hello" />
</appSettings>

在您的发布或调试文件中,您应该输入以下内容以更改其值:

<appSettings>
  <add key="GlobalValue1" value="hello world" xdt:Transform="SetAttributes" xdt:Locator="Match(key)" />
</appSettings>

这意味着当它找到配置时 appSettings/add[Key="GlobalValue1"] 它将设置转换中定义的属性。

您可以在这里找到更多信息:https://msdn.microsoft.com/en-us/library/dd465318(v=vs.100).aspx

【讨论】:

    猜你喜欢
    • 2018-10-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    相关资源
    最近更新 更多