我在IIS上部署了一个Web应用程序。此Web应用程序正在使用想要访问Web.config的库。
示例: Foo.dll是部署在IIS上的Web应用程序 Foo.Utility.dll被Foo.dll消耗
Foo.Utility namepsace中有一段代码想要从Foo应用程序访问web.config并读取配置值
Configuration config = WebConfigurationManager.OpenWebConfiguration(null);
string cacheDir = config.AppSettings.Settings["abc"].Value;
目前config.FilePath = C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Config \ web.config
将我的代码更改为:
Configuration config = WebConfigurationManager.OpenWebConfiguration(Assembly.GetCallingAssembly().Location);
string cacheDir = config.AppSettings.Settings["abc"].Value;
现在我的Assembly.GetCallingAssembly()。位置是:C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ root \ 62f5c902 \ 849205ff \ assembly \ dl3 \ c28d4647 \ 10e128d3_7449d001 \ foo的.dll
有人可以帮我理解如何从使用IIS部署应用程序的地方读取web.config吗?
如需更多信息或问题不明确,请在下方发表评论。将更新它
答案 0 :(得分:3)
您必须使用System.Configuration中的ConfigurationManager。首先,您必须添加对System.Configuration.dll程序集的引用,然后像这样使用它:
using System.Configuration;
...
string valueOfAbc = ConfigurationManager.AppSettings["abc"];
ConfigurationManager将从应用程序的主机读取配置文件。在您的情况下,web.config文件。
参考: