我使用抽象类从App.config文件中获取ConnectionString。但是,除了指定的ConnectionString,应用程序才会出现......
{data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true}
我不知道这个连接字符串来自哪里。我没有安装SQL Express。我知道没有访问正确的App.config,因为我添加了一个名为foo
的虚连接字符串,当我逐步调试而不是两个时,只拾取了一个连接字符串。就像应用程序从另一个App.config获取连接字符串一样!
这是我的班级
using System;
using System.Configuration;
namespace MyApiUpdater.Data
{
public abstract class ConnectionAccess
{
protected string ConnectionString
{
get
{
return ConfigurationManager.ConnectionStrings["MyDatabase"].ConnectionString;
}
}
}
}
这是我的App.config文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="MyDatabase" connectionString="Server=MyDatabaseServer;Database=MyDBName;Trusted_Connection=True;" />\
<add name="foo" connectionString="Server=MyDatabaseServer;Database=MyDBName;Trusted_Connection=True;" />
</connectionStrings>
</configuration>
答案 0 :(得分:0)
看看这个: Override machine.config by web.config
另外,请确保您使用的是Visual Studio中正确的配置文件,因为您可能会意外地从错误的文件夹中获取并编辑一个文件,这样您的应用程序就会抓取machine.config中的连接字符串。
请参阅:Where Is Machine.Config?并查看该文件,您将看到错误字符串的来源。
附加标签:web.config