编程语言
首页 > 编程语言> > c#-无法使用ConfigurationManager.AppSettings读取Web.config

c#-无法使用ConfigurationManager.AppSettings读取Web.config

作者:互联网

我已经建立了一个使用Web.config的WCF服务来获取一些appSettings.在Visual Studio中,它工作得很好,但是当我发布并安装该服务时,它突然从App.config而不是从Web.config获取其appSettings.

我知道这一点是因为我遍历appSettings并使用以下代码将结果打印到控制台:

foreach (string key in ConfigurationManager.AppSettings.AllKeys)
{
     Console.WriteLine("Name: {0} Value: {1}", key, ConfigurationManager.AppSettings[key]);
}

我的配置如下所示:

Web.config

  ....
  <appSettings>
    <add key="IQDir" value="C:\Program Files (x86)\Ridder iQ Client (lokaal)\Bin"/>
    <add key="FileURL" value="localhost:8080/WebPortal_2.0/"/>
  </appSettings>
  ....

App.config

....
  <appSettings>
    <add key="test1" value="wtf is going on!"/>
    <add key="test2" value="waargh"/>
    <add key="test3" value="I am getting a headache over here!!"/>
  </appSettings>
....

当我在Visual Studio中运行时,我得到:

但是,当我在实时环境中使用已发布的代码时,会得到以下信息:

为什么会发生这种情况,以及如何强制ConfigurationManager从Web.config而不是App.config获取appSettings.

解决方法:

如果您有标准的WCF项目,则应仅具有Web.config文件,而不应具有App.config.

我会完全跳过使用appSettings的旧方法.通过使用项目属性中的“设置”选项卡,可以改用applicationSettings.

它将在Web.Config中创建它:

<applicationSettings>
    <Projectname.Properties.Settings>
        <setting name="Testenvironment" serializeAs="String">
            <value>True</value>
        </setting>
    </Projectname.Properties.Settings>
</applicationSettings>

有关更多信息:appSettings vs applicationSettings. appSettings outdated?

标签:configurationmanager,visual-studio-2010,wcf,c,net
来源: https://codeday.me/bug/20191122/2059698.html