ASP.NET Web服务无法看到appSettings

时间:2011-08-31 14:45:23

标签: asp.net web-services appsettings

是否有人知道ASP.NET 2.0 Web服务可能无法从web.config读取appSettings值的任何情况?我似乎确实存在这个问题 - 代码认为appSettings在没有时是空的。

更详细:此代码:

    Dim settings = ConfigurationManager.AppSettings
    Dim count = settings.Count   ' always gives zero

错误地显示应用设置中没有数据。

我的网页配置如下所示

<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
  <!-- lots of other stuff -->
  <appSettings>
    <add key="SomeKey" value="Some Data" />
    <!-- other keys -->
  </appSettings>
</configuration>

我已经验证了代码可以看到web.config文件(通过简单的设备注释文件中的所有内容,并看到当我尝试运行该服务时,它会抱怨web.config无效)。

代码是生产代码,原则上工作,但显然不在我的机器上 - 所以我猜这个问题与我的环境有关,几乎可以肯定这不是代码的问题。

1 个答案:

答案 0 :(得分:1)

啊,看起来原因很荒谬。我只需要重新编译VB代码!发生了什么事,因为我(正确地,当它发生)确信VB代码没有任何问题,我把所有的精力集中在摆弄web.config和IIS设置(因为那些可能的东西)可以想象我的机器和已知的工作实时程序之间存在差异)。最终我放弃了这一点,并决定暂时改变VB代码以使用硬编码值。一旦我这样做并重建,我发现该程序现在正确地拾取了appSettings(并且我的黑客变得不必要了)。

所以,我的猜测是VB代码以某种方式脱离了web.config,需要重新编译才能重新附加它。我有些困惑,因为我认为ASP.NET会自动检测web.config的更改,所以无论如何重新编译,但显然不是。

如果有人能够通过解释ASP.NET中可能发生的事情来满足我的好奇心,这可能导致显式的代码重新编译是正确阅读web.config所必需的,那么我会将其标记为答案我原来的问题。 (如果大约一天之后没人做,我会将这篇文章标记为答案)。