如何从控制台应用程序中读取 web.config 的 <connectionstring>?

Posted

技术标签:

【中文标题】如何从控制台应用程序中读取 web.config 的 <connectionstring>?【英文标题】:How to read <connectionstring> of web.config from a console application? 【发布时间】:2012-01-24 06:13:52 【问题描述】:

我有 VB.net 控制台应用程序。我想从 web.config 中读取 (ConnectionString)。

Web.config 位于我的虚拟 PC 中的特定路径,例如 "C:/mywebConfig"

<add name="MY_DB" connectionString="Data Source=DATASOURCE;Initial Catalog=DB;Persist 

Security Info=False; User ID=***;Password=****;" providerName="System.Data.SqlClient" />

我的代码:

Dim connString As String = String.Empty

connString = ConfigurationManager.ConnectionStrings("MY_DB").ConnectionString

每当我尝试访问它时,我都会收到未设置为对象实例或类似内容的错误 :)

请帮忙。

我尝试在我的项目中添加 web.config,但仍然收到错误。

【问题讨论】:

【参考方案1】:

如果您确实想阅读另一个(网络)应用的app.configweb.config,请查看ConfigurationManager.OpenMappedExeConfiguration。

【讨论】:

【参考方案2】:

正如 Matt 建议的控制台应用程序,您需要包含一个 app.config 文件。为了便于阅读该文件,您可以引用 System.Configuration 程序集,然后使用 System.Configuration.ConfigurationManager.ConnectionStrings 属性。

例如:

string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["dbconnectionString"].ConnectionString;

编辑

我刚刚重新阅读了您的帖子,最好检查您的应用是否有权从 c:\ 驱动器读取 .config 文件。

【讨论】:

【参考方案3】:

web.config 用于 Web 应用程序 - 您需要一个 app.config 文件。

查看此链接了解不同之处:

dotNET - app.config and web.config

还有这个堆栈溢出问题what is app.config for

【讨论】:

以上是关于如何从控制台应用程序中读取 web.config 的 <connectionstring>?的主要内容,如果未能解决你的问题,请参考以下文章

从 web.config 读取连接字符串

从 .NET 中的 app.config 或 web.config 读取设置

如何从 Web.config 读取 system.net/mailSettings/smtp

从使用 IIS 部署的 webapplicaion 使用的库中读取 web.config

.NET如何从配置文件中读取数据

从控制台应用程序打开web.config?