Що робить файл Web.Config у папці подань проекту MVC


85

У мене проблеми з розгортанням програми, і під час усунення неполадок я натрапив на Web.Configфайл у цій Viewsпапці. Намагаючись звузити можливості джерел до моєї проблеми, я спробував з'ясувати мету цього файлу ~ Web.Config`, але насправді не можу знайти багато інформації.

Отже, в основному мої запитання:

  1. Що робить Web.configфайл у Viewsпапці проекту MVC?
  2. Це потрібно?

У веб-формах Asp.Net я вважаю, що для використання окремого файлу web.config у папці цю папку потрібно встановити як віртуальну папку в IIS. Чи так це в MVC (тобто Viewsпапку потрібно налаштувати як віртуальну папку)?


15
Немає "дурних" питань
contactmatt

8
Ніколи не бійтеся задавати «дурні» питання. Якщо ви не знаєте відповіді, то це не "дурно". Нічого "дурного" щодо кращого розуміння чогось.
DazManCat

4
ТАК відомий тим, як обливати користувачів напалмом, щоб задавати питання ...
Пангамма,

Відповіді:


79

Ні, вам не потрібно налаштовувати віртуальну папку через цей додатковий файл web.config.

Файл web.config існує у папках Views, щоб запобігти доступу до ваших подань будь-якими іншими способами, крім контролера. У шаблоні проектування MVC контролери повинні маршрутизувати запити і повертати відтворений вигляд викликаючому клієнту.

Іншими словами, ваш погляд на www.mydomain.com/MySuperController/AwesomeAction1/SweetPage.aspx не повинен бути безпосередньо доступним.

Якщо ви заглянете у файл web.config, він насправді реєструє HttpNotFoundHandlerвсі шляхи та дієслова:

<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>

Або в IIS 7 це може виглядати так

<add name="BlockViewHandler" path="*.aspx" verb="*" 
    preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>

21
Але сформований web.config містить величезну кількість іншого тексту - це все зайве?
Eamon Nerbonne

7

Він налаштовує компілятор для подань, таких як імпорт просторів імен, і робить папку подань поверненням 404.


7

Файл web.config у папці views має виконати деякі спеціалізовані налаштування, які потрібно застосувати до сторінок у папці view.

Як налаштування конфігурації, такі як: рядок з'єднання / налаштування додатків тощо.

але це буде застосовано лише до цієї папки, а решта проекту візьме налаштування з web.config, присутнього в кореневій папці.

Особливо, коли ви використовуєте концепцію області, для кожної області буде окрема папка, що містить окремий файл web.cfg, де ви можете застосувати окремі налаштування для кожної області.


6

Це якщо ви хочете замінити щось, згадане у верхній частині web.config, тобто якщо ви хочете налаштувати щось у межах Viewsпапки.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.