如何获取web.config中的configSections列表

时间:2015-08-11 17:38:26

标签: asp.net .net

我的ASP.NET Web服务在其web.config中定义了以下自定义configSections:

<configSections>
    <section name="config1" type="MyWebService.Configuration.MyWebServiceSection, App_Code"/>
    <section name="config2" type="MyWebService.Configuration.MyWebServiceSection, App_Code"/>
</configSections>

在WebMethod中,我需要获取其中定义的部分名称列表,在此示例中为"config1""config2"。从this answer开始,我了解到一个独立的应用程序可以通过以下方式获得我正在寻找的东西:

Configuration config = ConfigurationManager.OpenExeConfiguration(pathToExecutable);
foreach (ConfigurationSection cs in config.Sections)
{
    sectionNames.Add(cs.SectionInformation.SectionName);
}

但我需要在Web服务中执行此操作,因此我没有可执行文件的路径。关于使用ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);而不是可执行文件的路径的答案的评论中有一个建议,但这对我来说也不起作用(System.Argument exception:“exePath必须在不在内部运行时指定独立的exe“)。

这是正确的方法,如果是这样,当我在网络服务中运行时,我应该传递给OpenExeConfiguration什么?

1 个答案:

答案 0 :(得分:1)

对于asp.net使用此功能。您需要将WebConfigurationManager用于Web应用程序

var conf = WebConfigurationManager.OpenWebConfiguration("<path>")
foreach(var sec in conf.Sections)
{ 
  . . . . 
}

blog post