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

时间:2015-02-16 00:23:36

标签: c# asp.net .net iis asp.net-web-api

我在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吗?

如需更多信息或问题不明确,请在下方发表评论。将更新它

1 个答案:

答案 0 :(得分:3)

您必须使用System.Configuration中的ConfigurationManager。首先,您必须添加对System.Configuration.dll程序集的引用,然后像这样使用它:

using System.Configuration;
...
string valueOfAbc = ConfigurationManager.AppSettings["abc"];

ConfigurationManager将从应用程序的主机读取配置文件。在您的情况下,web.config文件。

参考:

  1. ConfigurationManager Class
  2. Application Configuration Files