【发布时间】:2013-12-15 15:59:00
【问题描述】:
我已经构建了一个 WCF 服务,它使用 Web.config 来获取一些 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。
【问题讨论】:
-
为什么会有 web.config 和 app.config?
-
你试过用
System.Web.Configuration.WebConfigurationManager代替吗? -
@Tobberoth 我已经尝试了很多东西,包括
WebConfigurationManager都是一样的结果。 -
@sirwilliam 首先,为什么你有一个 app.config?其次,你确定你测试正确吗?从我在 MSDN 文档中可以看到,WebConfigurationManager 无法打开 app.configs,它只能打开 Web 应用程序和机器配置文件。
-
@Tobberoth 这就是我问这个问题的原因,我不明白为什么会这样。在测试环境中它会做它应该做的事情,但是当我发布它时它开始表现得很奇怪。
标签: c# .net visual-studio-2010 wcf configurationmanager