无法从App.config读取密钥

5

我想从项目的App.config文件中读取一些值,但当我这样做时:

var appsettings = System.Configuration.ConfigurationManager.AppSettings;

我只得到了四个条目:StopTestRunCallTimeoutInSecondsLogSizeLimitInMegsCreateTraceListenerGetCollectorDataTimeout,它们甚至没有在XML中列出。 我的键usernamepassword甚至没有出现。

我的App.Config看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <appSettings>
    <add key="username" value="Administrator" />
    <add key="password" value="password" />
  </appSettings>
  <system.web>
    <membership defaultProvider="ClientAuthenticationMembershipProvider">
      <providers>
        <add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
      </providers>
    </membership>
    <roleManager defaultProvider="ClientRoleProvider" enabled="true">
      <providers>
        <add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
      </providers>
    </roleManager>
  </system.web>
</configuration>

我有所疑问,感觉自己读了一个完全不同的配置文件,但是没有其他的文件。


如果您在 appSettings 上设置了断点,并且当它停止时将鼠标悬停在上面,您是否会看到一些键?因为我自己尝试过,看到了您所有的键。 - MHeads
1
appSettings 只显示了我上面提到的四个条目,没有我的任何内容。不用担心写入配置文件的用户名和密码只是为了测试目的,没有最终意义。 - wodzu
3个回答

14

我找到了解决方案!问题是我在调试一个单元测试,该测试位于同一解决方案中的不同子项目中。我将 app.config 文件复制到与单元测试相同的项目中,现在它可以正常工作了。感谢你的帮助!


我一直卡住了,直到找到了你的解决方案。谢谢.. :) - sgowd
很高兴听到我在 SO 上的第一个答案仍然有用 :) - wodzu

2

2

我在通过Visual Studio添加配置文件后,可能错过了某些配置,还是说我该如何更改它? - wodzu
我找不到QTAgentService.exe.config XML文件,它并不在<驱动器号>:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\所描述的位置,可能是其他地方。 - wodzu
有可能在调试时使用了不同的配置文件吗? - wodzu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接