【问题标题】:How to read a value from an application's app.config file from a asp.net web page?如何从 asp.net 网页的应用程序的 app.config 文件中读取值?
【发布时间】:2012-03-10 04:15:57
【问题描述】:

基本上,我有一个 .net 应用程序,它的目录路径存储在 app.config 文件中。此目录路径输出将由 asp.net 网页读取的 xml 文件。

有什么方法可以让 asp.net 网页读取存储在 app.config 文件中的目录路径?我应该考虑使用 web.config 文件吗?

【问题讨论】:

  • 请不要在您的标题中添加诸如“vb.net asp.net”之类的内容。这就是标签的用途。

标签: asp.net xml vb.net web-config app-config


【解决方案1】:

最简单的做法是将目录路径复制到您的 asp.net Web 应用程序的 web.config 文件中。您可以将路径放在 web.config 文件的 AppSettings 元素中,如下所示:

<appSettings>
  <add key="FilePath" value="d:\fileDirectory" />
</appSettings>

然后您可以使用 WebConfigurationManager 或 ConfigurationManager 从您的 asp.net 应用程序中读取此值。 WebConfigurationManager 是首选方法,因为它知道如何处理 ASP.Net 配置继承(请参阅下面 Antonio 的评论)。

您需要确保运行 asp.net 进程的 Windows 帐户对存储 XML 文件的指定目录具有读取权限。您可以使用目录的 ACL 设置进行调整。

或者,可以尝试让您的 asp.net 应用程序直接从 .net 应用程序的 app.config 文件中读取路径,而不是复制 web.config 中的目录路径。在这种情况下,您需要将文件的内容加载到 XDocument 中或使用 .net 中的配置解析工具,然后解析文件以提取值。您需要确保您的 asp.net 应用程序具有读取 app.config 文件的权限。你仍然需要在 web.config 中存储一个路径,这一次指向 app.config 文件所在的位置。所以就个人而言,我只是将 xml 文件的路径复制到 asp.net 应用程序的 web.config 文件中。

【讨论】:

  • 几乎 +1 ;) 对于 ASP.NET 应用程序,它更喜欢使用 WebConfigurationManager,因为它可以处理 web.config 继承 stackoverflow.com/questions/698157/…
  • 感谢安东尼奥指出这一点。我相应地修改了我的回复帖子。
【解决方案2】:

要从 web.xml 读取应用设置,请使用
ConfigurationManagerSystem.Configuration 命名空间

<appSettings>
    <add key="filepath" value="D:\folder"/>
</appSettings>

读取此设置

ConfigurationManager.AppSettings["filepath"].ToString()

【讨论】:

    【解决方案3】:
    Dim Xmldoc As New XmlDocument
    Dim xmlatt As XmlAttribute
    xmldoc.load("your file path")
    xmlatt =xmldoc.SelectSingleNode("/configuration/appSettings/add[@key = 'keyname']/@value")
    

    您可以将值用作xmlatt.value

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-07
      • 2015-04-17
      • 2011-01-24
      • 2011-02-03
      • 2011-07-30
      • 2012-05-17
      • 1970-01-01
      相关资源
      最近更新 更多