ConfigurationManager.AppSettings无法找到设置

时间:2016-01-22 20:01:50

标签: c# web-config

使用位于项目内的以下web.conig文件(在本例中为单元测试项目):

...
<appSettings>
  ...
  <add key ="SmtpPort" value="00"/>
  <add key="SmtpHost" value="site.site.com"/>
  <add key=""/>
</appSettings>
...

以下单元测试失败:

[TestMethod]
public void VerifyAppSettingsAreRead()
{
    string port = System.Web.Configuration.WebConfigurationManager.AppSettings["SmtpPort"];
    string host = System.Web.Configuration.WebConfigurationManager.AppSettings["SmtpHost"];

    Assert.IsTrue(!String.IsNullOrEmpty(port) && !String.IsNullOrEmpty(host));
}

此外,System.Web.Configuration.WebConfigurationManager.AppSettings.AllKeys列出了一个键,并且在web.config文件中根本找不到它。实际上,在整个解决方案中搜索密钥都没有任何结果。

如何更正WebConfigurationManager无法返回正确密钥的行为?

1 个答案:

答案 0 :(得分:0)

我看到你引用app.config和web.config。

如果您尝试使用web.config设置,则可能应该使用

WebConfigurationManager

像:

[TestMethod]
public void VerifyAppSettingsAreRead()
{
    string port = System.Web.Configuration.WebConfigurationManager.AppSettings["SmtpPort"];
    string host = System.Web.Configuration.WebConfigurationManager.AppSettings["SmtpHost"];

   Assert.IsTrue(!String.IsNullOrEmpty(port) && !String.IsNullOrEmpty(host));
}