#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.