机器配置文件中的appSettings为空。

8
在我的 machine.config 文件中,我有以下内容:
<configuration>
    ....
    <appSettings>
        <add key="key" value="value"/>
    </appSettings>
</configuration>

我正在尝试通过使用asp页面来检索它

ConfigurationManager.AppSettings["key"];

每次它都返回null。


1
你是指的 web.config 文件吗? - Shai
你在其他地方有一个'clear'节点吗? - Oded
4
如果您处于64位环境中,则会有两个 machine.config 文件。一个是针对 Framework64,另一个是针对 Framework 的。确保它放置在正确的位置,或者同时在两个位置都放置。 - vcsjones
@vcsjones,你是对的,问题已经解决了 :) - harryovers
@harryovers 很棒,Darin写了详细的说明。功劳归于他。 - vcsjones
1个回答

23

你可能把它放错了machine.config文件中。请记住,.NET 2.0和3.5都针对CLR 2.0(c:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\)有相同的machine.config文件,而.NET 4.0则拥有独立的machine.config文件(c:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\)。

同时,请注意,如果你正在运行64位操作系统,则对应的文件夹为 c:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG\c:\Windows\Microsoft.NET\Framework64\v4.0.30319\CONFIG\。因此要确保在你的ASP.NET应用程序中,将密钥放入与所针对的框架版本以及x86或x64位对应的正确的machine.config文件中。

因此,每个CLR版本和位数(不知道是否存在这样的词)都会有一个machine.config文件。


我不相信3.5有一个machine.config文件,因为它是由运行时决定的。 - vcsjones
2
@vcsjones,.NET 3.5没有单独的machine.config文件。它与.NET 2.0相同。我会更新我的答案,因为这很令人困惑。 - Darin Dimitrov

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