Наследование IIS web.config с .Net Core

#iis #.net-4.0 #web-config #asp.net-core-2.0 #asp.net-core-webapi

#iis #.net-4.0 #web-config #asp.net-core-2.0 #asp.net-core-webapi

Вопрос:

Мне нужно перепроектировать один из системных модулей, используя Asp.Net Создайте ядро и разместите его на сервере IIS. Итак, мне просто нужно заменить уже существующий ASP.NET Приложение Web Forms с API на базе .Net Core. Но сложная часть здесь в том, что мне все еще приходится использовать файлы web.config верхнего уровня и извлекать из них параметры конфигурации.

Я провел краткое исследование и выяснил, что это может быть проблемой, потому что механизм настройки был изменен, и больше не рекомендуется использовать we.config или app.config на основе XML, и вместо этого я должен использовать app.settings: https://learn.microsoft.com/en-us/aspnet/core/fundamentals/configuration/?view=aspnetcore-2.2

Я нашел эту очень хорошую статью https://wildermuth.com/2018/04/15/Building-a-NET-Core-Configuration-Source о том, как создать пользовательский источник конфигурации и поставщика, и теперь я могу даже извлечь настройки приложения из локального файла web.config, но все еще испытываю проблему с получением доступа к файлу web.config верхнего уровня.

Когда я делаю это

         .ConfigureAppConfiguration((hostingContext, config) =>
        {
            config
                .AddWebConfig("web.config", optional: true)
                .AddJsonFile("appsettings.json", optional: true);
        })
  

Я могу успешно найти и проанализировать файл web.config, но когда я пытаюсь найти web.config на верхнем уровне, подобном этому

         .ConfigureAppConfiguration((hostingContext, config) =>
        {
            config
                .AddWebConfig("..\web.config", optional: false)
                .AddJsonFile("appsettings.json", optional: true);
        })
  

Я получаю сообщение об ошибке

Исключение System.IO.FileNotFoundException: ‘Файл конфигурации ‘..web.config’ не найден и не является необязательным.’

Любые рекомендации о том, как получить доступ к файлу web.config верхнего уровня, были бы очень признательны!

К сожалению, я не могу пропустить эту часть, и это одно из бизнес-требований клиента.

Комментарии:

1. На основе исходного кода относительный путь к файлу может не поддерживаться. Вместо этого вы можете попробовать использовать абсолютный путь к файлу.

2. Нет, абсолютный путь к файлу вообще не помог… получил ту же ошибку: (Возможно, это каким-то образом связано с ограничением доступа, и процесс просто не имеет доступа к файлам, кроме тех, которые принадлежат проекту?

3. ASP.NET Ядро полностью с открытым исходным кодом, поэтому ваша единственная надежда — отладить код, а не гадать о причине. «К сожалению, я не могу пропустить эту часть, и это одно из бизнес-требований клиента» — это тоже что-то странное, поскольку требования могут быть предметом переговоров. Хорошая статья, которую вы нашли, только претендует на решение проблемы, но она далека от завершения ASP.NET система конфигурации для 4.x.