在 Visual Studio 2010 中调试时无法从 Web API 配置中读取连接字符串

Posted

技术标签:

【中文标题】在 Visual Studio 2010 中调试时无法从 Web API 配置中读取连接字符串【英文标题】:Cannot read connection string from web API configuration when debugging in Visual studio 2010 【发布时间】:2016-07-01 16:00:02 【问题描述】:

我正在编写一个 ASP.net Web API 应用程序,这是我的第一个应用程序。我正在尝试设置我的连接字符串并使用配置管理器检索它。共有三个配置文件,web.config、web.debug.config 和 web.release.config。在每个文件中,我都添加了我想要的连接字符串并删除了默认连接字符串。但是配置管理器仍然从某个地方提取一个默认的数据库连接字符串。通过解决方案中的所有文件进行全局搜索,没有迹象表明配置管理器正在读取此默认字符串。如何让我的应用程序读取我在配置文件中指定的连接字符串?为什么配置管理器不读取这些配置文件?

这是我从配置管理器返回的字符串,我不知道它从哪里得到它: 数据源=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;用户实例=true

我正在尝试像这样读取配置字符串: string CONNECT_STRING = ConfigurationManager.ConnectionStrings["Jobs"].ConnectionString;

【问题讨论】:

【参考方案1】:

当我遇到这个问题时,我正在运行单元测试。由于某种原因,在运行单元测试时,Web API 应用程序不会从 Web 配置文件中读取连接字符串。但是,如果我从客户端应用程序调用 Web API 应用程序,则会从配置文件中读取配置字符串。我不确定为什么在单元测试期间没有读取配置文件,但我相信我会及时弄清楚。

【讨论】:

【参考方案2】:

尝试使用以下连接。其他情况下,您正在使用的连接 ./SQLEXPRESS 可能不存在。

【讨论】:

【参考方案3】:

尝试使用此连接字符串

 <connectionStrings>
     <add name="Sqlcnn" providerName="SqlClient" connectionString="Data Source=Datasource name; user id=userid; password=pwd; database=DbName" />
 </connectionStrings>

【讨论】:

连接字符串的格式没问题。如果我将它硬编码到我的应用程序中,我的服务将连接到数据库。问题不在于连接字符串的格式。问题是配置管理器没有读取解决方案中的配置文件,而是从某个未知位置读取连接字符串。

以上是关于在 Visual Studio 2010 中调试时无法从 Web API 配置中读取连接字符串的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2010 反复崩溃

在 Visual Studio 2010 中调试时无法从 Web API 配置中读取连接字符串

Visual Studio 2010:调试时,如何从变量中复制包含回车符的字符串值?

visual studio 2010在运行调试时,运行窗口自动退出

Visual Studio 2010 挂起附加到进程/调试

如何在 Visual Studio 2010 中关闭远程调试?