【问题标题】:.NET ConfigurationSettings.AppSettings("TheDB").NET ConfigurationSettings.AppSettings("TheDB")
【发布时间】:2012-08-15 20:56:24
【问题描述】:

我正在查看一个自定义构建的 .NET 控件 (vb)。它有一个公共字符串声明为:

Public Shared strConn As String = ConfigurationSettings.AppSettings("TheDB")

我试图找出“TheDB”应该是什么。 我使用这个自定义控件查看了网站的 web.config 文件,但是任何地方都没有“TheDB”参数。我还查看了 Web 服务器的 machine.config 文件,同样,那里也没有“TheDB”参数。

帮助。

【问题讨论】:

  • TheDB 应该是控件在数据库中使用的连接字符串。它应该在 下的 web.config 中。如果它不存在,请查看 appSettings 是否具有 ConfigSource 属性,例如 如果是,则查找在 configSource 中指定的文件

标签: c# .net vb.net web-config machine.config


【解决方案1】:

如果缺少,只需添加它:

 <appSettings>
     <add key="TheDB" value="somevalue" />
 </appSettings>

(假设ConfigurationSettings.AppSettings 确实对应于web.configappSettings 部分。这不清楚,因为通常您使用内置ConfigurationManager 类引用配置文件的标准部分)

【讨论】:

  • 这也是一个内置类。它只是贬值了。
  • 是的。如果您未在 .config 文件中定义键,则应用程序将默认为编译时配置的值。
  • @PhillipSchmidt:我已经检查过了,确实,谢谢你的提醒。
  • @WiktorZychla 我只知道,因为我以前工作的公司似乎在编写代码,好像是 1995 年。配置设置、布局表等。
  • @PhillipSchmidt:我从 2002 年开始使用 .NET,而且我一定一直在使用该类。但是,我已经习惯了ConfigurationManager,现在我已经完全忘记了ConfigurationSettings(所以我认为它可能是一个自定义类)。
【解决方案2】:

查看您的 web.config。在某处有一个名为“AppSettings”的部分,其中应该有一些看起来像这样的元素:

&lt;add key="TheDB" value="something" /&gt;

其中一个将是您的。或者可能有人把它拿出来了。不过,它很可能是您的数据库的连接字符串。

【讨论】:

    【解决方案3】:

    web.config 是分层的。每个 web.config 都将配置信息提供给它所在的目录以及它下面的整个目录层次结构。

    http://msdn.microsoft.com/en-us/library/ms178685.aspx

    从 .Net v1.1 开始就是这样。当您查找配置值或部分时,.Net 配置系统会在最低级别的 web.config 中查找。如果未找到所需的值,它将沿目录树向上运行,直到找到为止。

    您需要运行目录层次结构(是的,这也包括安装在 IIS 中的虚拟目录),直到找到包含所需 appsetting 值的 web.config 文件。还有 IIS ApplicationHost.config,位于

    %windir%\system32\inetsrv\config
    

    【讨论】:

      猜你喜欢
      • 2011-03-27
      • 1970-01-01
      • 1970-01-01
      • 2013-12-06
      • 1970-01-01
      • 1970-01-01
      • 2015-07-29
      • 2014-12-08
      • 2017-10-20
      相关资源
      最近更新 更多