【发布时间】:2018-08-28 22:06:02
【问题描述】:
我需要阅读应用程序文件夹之外的web.config 文件(位于任何其他目录中)。
我试过这段代码:
string filePath = @"C:\Users\Idrees\Downloads\New folder\Web.config";
Configuration c1 = ConfigurationManager.OpenExeConfiguration(filePath);
var value1 = c1.AppSettings.Settings["Key1"].Value;
但它给了我错误:
对象引用未设置为对象的实例。
因为这里c1.AppSettings 是一个对象,但c1.AppSettings.Settings 不包含项目(因此0 计数)。它并没有真正加载AppSettings 键。当尝试从Settings 集合中读取任何Key 时,会出现此错误。
有什么方法可以从应用程序文件夹外的web.config 文件中加载AppSettings 密钥。
如果我将相同的文件放在应用程序文件夹中,那么它会成功读取密钥。
这是我的示例配置文件的内容:
<?xml version="1.0" encoding="utf-8"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<connectionStrings>
<!--here goes my connection strings-->
</connectionStrings>
<appSettings>
<add key="Key1" value="Value1" />
<add key="Key2" value="Value2" />
<add key="Key3" value="Value3" />
</appSettings>
</configuration>
我的服务器上已经运行了一个 Web 应用程序。而且我需要开发一个小型实用程序,它必须在数据库中完成一些工作,并且我不想在每个应用程序中编写数据库凭据或连接字符串(以及其他一些额外的应用程序设置),我希望它读取相同的内容来自 web.config。
【问题讨论】:
-
改用 XDocument 类?
-
感谢@DevC。有什么原因我们无法使用 ConfigurationManager 类读取?
-
您只需要那个 web.config 来加载应用程序设置吗?如果是这种情况,为什么不使用 json 文件并对其进行解析?
-
我的服务器上已经运行了一个 Web 应用程序。现在我需要开发一个小型实用程序,它必须在数据库中完成一些工作,并且我不想在每个应用程序中编写数据库凭据或连接字符串(以及其他一些其他应用程序设置),我希望它读取相同的内容来自 web.config。
-
@M_Idrees 我认为您的最后一条评论可以添加到您的问题中,因为它让我们知道您真正想要什么