我有一个带有两个应用程序的 IIS (>7)/foo
和/foo/bar
. 两者都有几个连接字符串,我需要获取所有连接字符串的列表,这些连接/foo/bar
字符串不是从/foo
. 我System.Web.Configuration
用于一些任务,在这里找到一种使用这些类的方法也会很酷。有任何想法吗?
我无法直接读取 web.config,因为connectionStrings
-section 受到保护。
我有一个带有两个应用程序的 IIS (>7)/foo
和/foo/bar
. 两者都有几个连接字符串,我需要获取所有连接字符串的列表,这些连接/foo/bar
字符串不是从/foo
. 我System.Web.Configuration
用于一些任务,在这里找到一种使用这些类的方法也会很酷。有任何想法吗?
我无法直接读取 web.config,因为connectionStrings
-section 受到保护。
好的,我找到了解决方案。
var config = WebConfigurationManager.OpenWebConfiguration(i_applicationVirtualPath);
if (config != null) {
ConnectionStringsSection connectionStringSection = config.ConnectionStrings;
ConnectionStringSettingsCollection connectionStringsCollection =
connectionStringSection.ConnectionStrings;
foreach (var settingObject in connectionStringsCollection) {
ConnectionStringSettings setting = settingObject as ConnectionStringSettings;
if (setting.ElementInformation.IsPresent) {
// This connectionstring is in the corresponding web.config
}
}
}
此代码仅检测我正在寻找的连接字符串,并且能够通过加密透明地读取。这也应该适用于其他配置部分......