服务器上的配置管理器异常但在开发机器上工作

configurationmanager exception on server but does work on dev machine

这个问题困扰了我好几个小时。
我有一个 LINQ 查询来解析我应用程序配置文件中未定义数量的电子邮件地址。
以下代码将有助于 tp 理解:

App.config
<configuration>
  <appSettings>
    <add key="errorMail1" value="support@mail.com"/>
    <add key="errorMail2" value="test@mail.com"/>
  </appSettings>
<configuration>

所以当我阅读电子邮件地址时,我通过 属性:

按以下方式进行
private List<string> _mailsWhenProblems;
public List<string> mailsWhenProblems
{
    get
    {
        if (_mailsWhenProblems == null)
        {
            var keys = ConfigurationManager.AppSettings.Keys;
            _mailsWhenProblems = keys.Cast<object>()
                .Where(key => key.ToString().ToLower()
                .Contains("errorMail".ToLower()))
                .Select(key => ConfigurationManager.AppSettings.Get(key.ToString())).ToList();
        }
        return _mailsWhenProblems;
    }
    set
    {
        _mailsWhenProblems = value;
    }
}

就是说,只要我 运行 它在开发机器上处于调试模式,一切都会按预期完美运行。但是一旦我在 Windows Server 2012 上部署它,应用程序就会崩溃并出现此异常:

************** Texte de l'exception **************
System.Configuration.ConfigurationErrorsException: Échec de l'initialisation du système de configuration ---> System.Configuration.ConfigurationErrorsException: Section de configuration non reconnue oracle.manageddataaccess.client. (C:\Program Files\celibec\Celibec Transfert Android FileWatcher\FileWatcherService.exe.Config line 20)
   à System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean ignoreLocal)
   à System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors schemaErrors)
   à System.Configuration.ClientConfigurationSystem.EnsureInit(String configKey)
   --- Fin de la trace de la pile d'exception interne ---
   à System.Configuration.ConfigurationManager.PrepareConfigSystem()
   à System.Configuration.ConfigurationManager.get_AppSettings()

异常与您的代码无关。您可能忘记了服务器配置文件中的 <configSections> 标记。使用此标签,您可以注册自定义 oracle.manageddataaccess.client 标签。我猜你的开发机器上有这个标签。
请注意,<configSections> 必须是 <configuration> 标签中的第一个。

有关详细信息,请参阅此 MSDN link 关于 Custom Configuration Sections