Я отлаживал, почему атрибутная маршрутизация не действует, и обнаружил странное поведение проекта WEB API с использованием VS 2017, то есть
любая веб-страница будет запускаться впереди Global.asax.cs, если она «Установить как старт»
Страница».
Вот как:
- VS 2017, Новый проект, C #, веб, ASP.NET Web app.
- Пустой шаблон, установите флажок WebAPI.
- теперь у него есть Global.asax, WebApiConfig.cs внутри App_Start, поместите точку останова в любой файл.
- Добавьте файл index.html в проект, добавьте к нему кнопку и установите его в качестве начальной страницы.
- F5, index.html запускается, нажимает на кнопку, все работает, как ожидалось, но никогда не достигает точки останова в WebApiConfig.cs.
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<input type="button" value="Go" onclick="alert('hello');" />
</body>
</html>
Этот пример proj на сайте MS всегда достигает точки останова: ЕСЛИ стартовая страница не установлена, ТО всегда достигать ее раньше всего, ИЛИ сразу после index.html. По сравнению с файлом .csproj, только diff использует .NET Framework 4.6 против 4.5.2.
Тем не менее, использованный 4.6 для создания нового проекта, как указано выше, результат тот же.