在 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 请求标识访问此资源的权限