在 ASP.NET 中访问 app.config

Posted

技术标签:

【中文标题】在 ASP.NET 中访问 app.config【英文标题】:Accessing app.config in ASP.NET 【发布时间】:2011-08-24 18:54:21 【问题描述】:

我正在使用 app.config 文件从中读取数据.. 我将 app.config 文件加载为:

string app_path = HttpContext.Current.Server.MapPath("app.config");
xmlDoc.Load(app_path);

string image_path = ConfigurationManager.AppSettings["Test1"];

我想获得“Test1”的值。但是 test1 的值是“null”.. 如何从 app.config 文件中获取“test1”的值.. 我将 app.config 文件创建为:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="Test1" value="My value 1" />
    <add key="Test2" value="Another value 2" />
  </appSettings>
</configuration>

请帮帮我..

【问题讨论】:

asp.net中没有app.config,需要用web.config代替。 如果你运行的是 ASP.NET,你需要使用 Web.config,而不是 App.config 无论如何,不​​要将 web.config/app.config 加载为 XmlDocument。请改用内置的基础架构成员。 这怎么办???? 【参考方案1】:

Web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="Test1" value="My value 1" />
    <add key="Test2" value="Another value 2" />
  </appSettings>
</configuration>

代码:

string image_path = ConfigurationManager.AppSettings["Test1"];

【讨论】:

是的,但是在 ASP.NET 应用程序中,您必须使用 web.config 文件,而不是 app.config 文件。 是的,我使用了 web.config 并将其重命名为 app.config 文件。这可能吗.... 没有。它需要命名为 WEB.CONFIG。 .net 配置环境使用一组约定,其中文件需要命名某些东西才能使 ConfigurationManager 工作。 但我从某个网站得知 app.config 用于在 .config 文件中进行一些个人设置 @percy:在 ASP.NET 中,默认配置称为 Web.config,任何其他配置 - 都是自定义和可选的。因此,您可以将其命名为 App.config(如在 WinForms 中)或其他任何名称,Foo.config 或 Config\Bar.config。加载和读取此类文件需要自定义加载程序(ConfigurationManager.OpenExeConfiguration())。【参考方案2】:

在 ASP.NET 应用程序中,默认配置文件名为 web.config。这是您应该遵守的约定,它允许您轻松使用 ConfigurationManager 访问配置设置。

我建议以查看http://en.wikipedia.org/wiki/Web.config 作为起点,了解 ASP.NET 域中基本 .NET 应用程序配置的来龙去脉。

您可以通过设置要覆盖的配置部分的file 属性将配置文件链接在一起:http://www.codeproject.com/KB/dotnet/appsettings_fileattribute.aspx

【讨论】:

如果我必须使用一些个人设置,那么我必须在“”内的 web.config 文件中提供它。【参考方案3】:

如果您想在 Web 应用程序中使用 ConfigurationManager.AppSettings,您必须将 AppSettings 部分放在 web.config 中。

【讨论】:

以上是关于在 ASP.NET 中访问 app.config的主要内容,如果未能解决你的问题,请参考以下文章

在 asp.net 中阻止对 WebService.asmx 的访问

在 ASP.NET Core 中访问当前的 HttpContext

ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限

如何让 ASP.NET 访问证书存储中证书中的私钥?

在 Asp.net core 2.2.1 中访问 XMLHttpRequest

ASP.NET前后台互相访问