Read separate web.config file outside the application folder(在应用程序文件夹之外读取单独的web.config文件)
问题描述
我需要在应用程序的文件夹(位于任何其他目录中)之外读取web.config
文件。
我尝试了此代码:
string filePath = @"C:UsersIdreesDownloadsNew folderWeb.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中读取相同的东西。
推荐答案
您可以使用ConfigurationManager
通过打开映射的exe配置来读取任意配置文件,如下所示:
var filePath = @"C:UsersIdreesDownloadsNew folderWeb.config";
var fileMap = new ExeConfigurationFileMap { ExeConfigFilename = filePath };
var configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
var value = configuration.AppSettings.Settings["Key1"].Value;
这篇关于在应用程序文件夹之外读取单独的web.config文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在应用程序文件夹之外读取单独的web.config文件
基础教程推荐
- 有没有办法忽略 2GB 文件上传的 maxRequestLength 限制? 2022-01-01
- 如何激活MC67中的红灯 2022-01-01
- 为什么Flurl.Http DownloadFileAsync/Http客户端GetAsync需要 2022-09-30
- 如何在 IDE 中获取 Xamarin Studio C# 输出? 2022-01-01
- 将 XML 转换为通用列表 2022-01-01
- 将 Office 安装到 Windows 容器 (servercore:ltsc2019) 失败,错误代码为 17002 2022-01-01
- rabbitmq 的 REST API 2022-01-01
- MS Visual Studio .NET 的替代品 2022-01-01
- c# Math.Sqrt 实现 2022-01-01
- SSE 浮点算术是否可重现? 2022-01-01