Запутался насчет web.config в .NET Core - PullRequest
0 голосов
/ 12 января 2019

Существует несколько противоречивых утверждений о web.config и .NET Core.

Кроме того, я только что развернул в Azure практически всегда готовое приложение .NET Core. В репозитории нет web.config, но когда я исследую развернутый код в Kudu, есть ли файл web.config?


Что происходит с web.config в .NET Core? Как вы должны делать вещи не-Custom-App-Configuration? (например, заголовки HTTP и другие настройки уровня HTTP)

Ответы [ 3 ]

0 голосов
/ 12 января 2019

В веб-приложении .NET Framework web.config используется для двух целей:

  1. Для сохранения конфигурации для веб-приложения.

  2. Для хранения конфигурации IIS, в которой размещается приложение (элемент system.webServer).

В веб-приложении .NET Core у вас есть как минимум два варианта хранения конфигурации приложения:

  • Используйте Поставщик конфигурации ядра .NET , часто с файлом конфигурации json.

  • Используйте System.Configuration.ConfigurationManager NuGet с последними версиями .NET Core (я думаю, 2.0+). Одним из преимуществ использования System.Configuration.ConfigurationManager является то, что его можно использовать в библиотеках .NET Standard 2.0, которые совместимы как с .NET Core, так и .NET Framework.

Если вы решите использовать System.Configuration.ConfigurationManager в веб-приложении .NET Core, вам нужно добавить файл app.config (не web.config) в ваш проект Visual Studio. При создании этого проекта он будет скопирован в выходной каталог и переименован в appName.dll.config.

Если вы размещаете веб-приложение .NET Core в IIS, вам все равно может понадобиться файл web.config с конфигурацией для IIS (элемент system.webServer). То есть Вашему приложению могут потребоваться app.Config и web.config.

Лично я предпочитаю использовать System.Configuration.ConfigurationManager и XML-файл конфигурации app.config, по нескольким причинам, включая совместимость с .NET Framework, тот факт, что легко комментировать биты XML и т. Д. Конечно, YMMV.

0 голосов
/ 12 января 2019

Прочитайте несколько web.config примеров из Google, и вы должны заметить, что,

  1. ASP.NET / WCF 2.x / 4.x использует его для хранения конфигурации (теги типа <system.web>).
  2. IIS использует его для хранения конфигурации (теги типа <system.webServer>).

Таким образом, переход на ASP.NET Core делает только первый устаревшим, и вы должны только попрощаться с этим знанием.

Если вы размещаете ваше веб-приложение в IIS, тогда web.config по-прежнему необходим, поскольку вам нужны начальные настройки для настройки модуля ASP.NET Core для IIS / IIS Express (dotnet publish создает такой файл, если вы не твой собственный).

0 голосов
/ 12 января 2019

Это может быть неправильно, не стесняйтесь поправлять меня, но я так понимаю.

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

в дотнет ядре У вас есть слой между программным обеспечением для хостинга, таким как IIS, и вашим веб-приложением, и он называется Kestrel.

Пустельга - прокси между ними. И по умолчанию web.config, который вы видите, если вы загляните внутрь, вы увидите код по умолчанию, который в основном говорит, что я - приложение ядра dotnet, использующее среду ядра dotnet, чтобы запустить меня. Вы все еще можете поместить туда конфигурацию, чтобы сообщить IIS, как работать, я специально использовал ее для увеличения размера загрузки файла и проверки подлинности Windows.

Я бы настроил заголовки HTTP, используя промежуточное ПО.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...