我已经构建了一个 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]);
}
我的配置如下所示:
网页配置
....
<appSettings>
<add key="IQDir" value="C:\Program Files (x86)\Ridder iQ Client (lokaal)\Bin"/>
<add key="FileURL" value="localhost:8080/WebPortal_2.0/"/>
</appSettings>
....
应用程序配置
....
<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 与 applicationSettings。应用程序设置已过时? https://stackoverflow.com/questions/2350893/appsettings-vs-applicationsettings-appsettings-outdated
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)