为什么我在 Web.Config 中找不到带有 WebConfigurationManager 的 AppSetting?

Why can I not find an AppSetting in my Web.Config with WebConfigurationManager?

我的解决方案中有 2 个项目。 1 是一个 MVC Web 应用程序 另一个是带有 Web Service

的空网站

昨天我通过右键单击 Web 服务项目添加了一个设置,然后转到属性 => 手动添加设置。

这将创建一个设置文件并将设置添加到 Web.Config。

今天我手动修改了 Web.config 文件(我不确定是不是这个原因)但出于某种原因,以下代码无法从我的 Web.Config 中获取我的设置:

string connstring = WebConfigurationManager.AppSettings["someString"];

只是returns空

设置名称正确。 MVC 项目也以同样的方式添加了设置,在那里我可以毫无问题地获得所有设置。

我尝试过的事情:

我注意到的另一件奇怪的事情如下:

当我立即在 window 中键入 "WebConfigurationManager" => 看起来其中有 0 个 AppSettings。 它还表明我有 2 个连接字符串,但它们实际上不存在(如果我执行 Ctrl+Shift+F,则无法在解决方案中找到): 这是连接字符串 "WebConfigurationManager.ConnectionStrings[0]" returns:

ConnectionString: "data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"

我几乎认为它打开错误 Web.config(但在我的任何项目中都没有,因为我的解决方案中不存在上面的连接字符串)

感谢任何提示!!

额外信息,web.config 的内容:

.....

<applicationSettings>
    <SomeWebServices.Properties.Settings>
        <setting name="someString" serializeAs="String">
            <value>DATA SOURCE=abcdefg;USER ID=ABC;PASSWORD=abc987</value>
        </setting>
        <setting name="someOtherString" serializeAs="String">
            <value>DATA SOURCE=abcde;USER ID=ABC;PASSWORD=abc654</value>
        </setting>
    </SomeWebServices.Properties.Settings>
</applicationSettings>

由于您在 web.config 中使用的是 applicationSettings 而不是 appSettings,因此您需要通过 Properties.Settings.Default.someString

访问您的设置

如果您想使用 string connstring = WebConfigurationManager.AppSettings["someString"];,您必须在 web.config.

appSettings 部分添加设置

编辑:
如果您真正想要的是放置连接字符串的地方,您应该遵循 并使用 web.config.

connectionStrings 部分

如果您使用 .NET 3.5 或更高版本,请不要在 web.config 中使用 appsettings。而是使用 web.config.

中的 connectionStrings 部分

试试这个 web.config

<connectionStrings>
<add name="myConnectionString" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" />
</connectionStrings>