【问题标题】:Accessing web.config file from an external dll in C#从 C# 中的外部 dll 访问 web.config 文件
【发布时间】:2018-06-22 22:21:20
【问题描述】:

我正在使用 MVC 和 Webservices 进行产品许可申请。 在这里,如果产品(win/web 应用程序)需要执行许可验证,那么它将调用我在许可应用程序中实现的 web 服务。它工作正常。 如果一个产品想要注册到这个许可申请中,需要在每个客户端产品中部署一些代码,例如调用 Web 服务的代码,进行加密以及在许可证过期时将详细信息发送到续订页面。 为了将这些更改包含到每个客户端产品中,我计划创建一个 dll 来实现这些逻辑并部署到每个产品中。在这里,我想从我的 dll 访问每个客户端应用程序的 web.config/app.config 并在标签中添加一些键。是否可以从已部署到该应用程序的外部 dll 访问另一个应用程序 web.config 文件?

【问题讨论】:

  • 如果我理解正确,您的应用程序安装在多个包含配置文件的客户端站点。您现在想要安装一个可以访问该配置文件的辅助应用程序吗?配置文件只是一个xml文件,所以只要您的应用程序可以到达您要读取的配置位置,那我不明白为什么不。
  • 是的,您没看错,但是如何访问 web.config 的位置并从类库中打开它?
  • 我会以文本形式打开配置文件并使用它来创建 XML 文档。然后使用 linqtoxml 或 xpath 获取您的应用设置以及您需要的详细信息。

标签: c# web-services model-view-controller web-config


【解决方案1】:

如前所述,下面是如何加载 web.config 和访问应用设置部分的示例。

对于这个本地示例,我已将 web.config 移至 C:\Web.config 并使用 Linq XML。

 using System.Xml.Linq;

 XDocument xdoc = XDocument.Load("C:\\web.config"); //Path to your config here!

 XElement appSettingsNode = xdoc.Elements().First()
      .Elements().FirstOrDefault(f=> f.Name == "appSettings");

 foreach (XNode node in appSettingsNode.Nodes())
 {
      var currentSetting = node.ToString(); //Here check the contents for setting you need
 }

希望有帮助

【讨论】:

  • 感谢您的回答,但是我的 web.config 文件路径不是硬编码的,我想像 server.map 之类的那样阅读它。它不工作
  • 这只是一个例子!这就是为什么它在 cmets 中说“您的配置路径”....您从哪里获得配置的路径取决于您!您可以在主应用程序配置中保留其他配置的路径!您问的是如何访问配置......而不是在哪里存储配置的路径!
  • 感谢您的回答,但是我的 web.config 文件路径不是硬编码的,我想像 server.map 之类的那样阅读它。 XmlDocument 文档 = 新 XmlDocument(); doc.Load(System.Web.HttpContext.Current.Server.MapPath("~/Web.config"));.MapPath("~/Web.config"));此处显示 System.Web.HttpContext.Current.Server.MapPath 之类的错误不存在。因为我正在尝试从类库中访问它,.cs 文件
  • 我认为您在这里忽略了重点。您的配置路径错误!我的代码可以更改为 "XDocument.Load(System.Web.HttpContext.Current.Server.MapPath("~/Web.config"));.MapPath("~/Web.config"))).. 但是如果你走错了路,那就是另外一个问题了!
猜你喜欢
  • 2011-03-17
  • 2019-02-11
  • 2013-08-12
  • 2011-03-03
  • 1970-01-01
  • 2017-01-19
  • 1970-01-01
  • 1970-01-01
  • 2011-07-06
相关资源
最近更新 更多