Unable to load .NET config sections into System.Configuration classes within an aws lambda function

0

I would like to deploy an AWS lambda function using .NET Core. Much of the code is shared with other applications that are not lambdas. We use System.Configuration extensively throughout our code. However, we are unable to get lambda code to find and load configuration files.

These are snippets from our application config file.

<configSections>
    <sectionGroup name="countryConfig">
      <section name="countryConfiguration"
               type="TTDomain.Configuration.Countries.CountryConfiguration, TTDomain_NETStandard"/>
    </sectionGroup>
<configSections>
...
...
  <countryConfig>
    <countryConfiguration configSource="Web.countryConfiguration.config"/>
  </countryConfig>

And then in C# code we do things like

public static CountryConfiguration GetConfig()
        {
            return ConfigurationManager.GetSection("countryConfig/countryConfiguration") as CountryConfiguration;
        }

This all works just fine, except when deployed as a lambda function. We have many many such usages of various configurations throughout a large code base of assemblies shared to many contexts. Not being able to use this very basic .NET feature is creating a lot of re-work. Any ideas how to make it work without needing to touch all our C# code?

Thanks

posta 2 anni fa529 visualizzazioni
1 Risposta
1

Hi Kevin,

I suspect the issue is that you are using the Windows Compatibility Pack to leverage ConfigurationManager from your .NET Core application. Whilst the Windows Compatibility Pack makes it easy to port .NET Framework apps to .NET, it restricts those applications to only run on Windows. AWS Lambda is underpinned by Linux which means .NET Core applications that have Windows dependencies won't work.

AWS
Brad
con risposta 2 anni fa

Accesso non effettuato. Accedi per postare una risposta.

Una buona risposta soddisfa chiaramente la domanda, fornisce un feedback costruttivo e incoraggia la crescita professionale del richiedente.

Linee guida per rispondere alle domande