ASP. NET MVC Project web.config и app.config файлы - PullRequest
0 голосов
/ 29 апреля 2020

При создании проекта ASP. NET MVC файл web.config генерируется автоматически и используется для всех строк подключения и версий dll, относящихся к решению.

I ' Мы добавили новый проект в решение для обработки операций с данными с использованием Entity Framework и можем видеть, что у него также есть свой собственный app.config, который также создается.

Раньше все данные и сеть были на одном ASP. NET проекта, и теперь я разделил их на два разных проекта, чтобы у веб-проекта были только веб-компоненты, а у проекта данных - подключения к базе данных с использованием Entity Framework.

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

Я попытался полностью удалить файл app.config из проекта данных, и похоже, что решение работает даже без t.

Существуют ли какие-либо особые причины, по которым файл app.config существует в проекте ASP. NET MVC, или этот файл можно безопасно удалить, не затрагивая веб-сайт?

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

Существует ли какая-то иерархия, которая используется, когда детали app.config переопределяют web.config детали?

Ответы [ 2 ]

1 голос
/ 29 апреля 2020

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

Из источника

Web.Config используется для asp. net веб-проектов / веб-сервисов. (или, скажем, веб-приложение)

App.Config используется для Windows форм, Windows служб, консольных приложений и приложений WPF (или, скажем, оконного приложения)

Так что, возможно, ваш второй Проект для данных является оконным или консольным, поэтому и создается.

Пока в проекте нет какого-либо файла, у вас нет ссылки в других файлах, вы можете удалить и запустить проект.

В идеале строка подключения в вашем основном проекте и указание ссылки в проекте данных, который обрабатывает одну строку подключения в решении или в нескольких проектах.

https://www.c-sharpcorner.com/UploadFile/8a67c0/web-config-vs-app-config-vs-machine-config/

1 голос
/ 29 апреля 2020

In. Net, есть только три типа проекта: windows приложение, консольное приложение и библиотека классов.

app.config будет автоматически создан с первыми приложениями двух типов, и он будет использоваться во время работы приложения;

Для веб-сайта / приложения / службы будет создан и использован web.config при доступе к веб-страницам. Но на самом деле веб-сайт / приложение / сервисы относятся к типу библиотеки классов.

В вашем случае проект Data может быть создан как консольное / windows приложение, поэтому будет сгенерирован app.config. Поэтому вы должны изменить проект Data на библиотеку классов и добавить ссылку на проект в веб-проект, а затем безопасно удалить app.config.

  1. Чтобы изменить тип проекта: щелкните правой кнопкой мыши Проект данных -> Свойство -> Приложение в левой панели -> Тип вывода -> Библиотека классов

  2. Чтобы добавить ссылку на проект: Щелкните правой кнопкой мыши веб-проект -> Добавить -> Ссылка .. -> Проекты в левой панели -> отметка Проект данных -> OK

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

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