У меня есть немного страшное время, чтобы работать с настройкой WebAPI 2. Я пытаюсь разместить это в уже существующем решении, содержащем несколько проектов.WebAPI 2 Ошибки маршрутизации/хостинга
Текущая раскладка (с обобщенными названиями):
-Server.Project -Services.Project
Прямо сейчас, IIS делает хостинг. В IIS есть приложение, которое называется Application.
Итак, прямо сейчас, если вы перейдете на localhost/Application/service.asmx, все запустится и все будет. Файл global.asax.cs и большинство классов обслуживания находятся в Services.Project, хотя Server.Project является точкой входа программного обеспечения.
Я хочу использовать новые вещи WebAPI.
Я определил контроллер (TestAPIController) в Services.Project и файл конфигурации со стандартными сопоставлениями (из всех примеров). Функция Register() вызывается из Application_Start(). Я проверял, что его хотя бы называют.
Если я иду:
локальный/Application/TestApi/что-нибудь когда-либо, это дает мне ошибку 404.
Я попытался использовать Отладчик маршрутов, установив пакет и перейдя на localhost/Application/rd (также попробовал/Приложение/TestAPI/rd). Ни одна из них не работает. Я получаю 404.
Это заставляет меня думать, что у меня что-то не так, так что материал WebAPI на самом деле не работает правильно.
Я тоже пытался сделать запуск OWIN, но он, похоже, не помог.
Для этого я просто добавил соответствующие материалы класса запуска в свой web.config и свой глобальный класс в Services.Project.
Я также подтвердил, что функция Configuration() для Owin также вызывается, но я по-прежнему не могу попасть на пути, которые я установил.
Я думаю, что точкой входа является Server.Project, но контроллер/маршруты определены в Services.Project может быть частью проблемы.
Однако все сборки размещены в том же каталоге bin. Я был убежден, что это должно позволить всем загружаться/находить.
Я что-то упустил?
Если ничего не ясно, извините. Дайте мне знать, чтобы я мог это прояснить.
Спасибо.
EDIT:
Итак, я получил другой маршрут отладчик для установки и сотрудничать.
(install-package RouteDebugger).
Если я попал мой главный URL: локальный/приложение
Этот маршрут отладчик запускает и показывает, что никаких путей не были согласованы, но также показывает пути маршрутизации, которые я определены, но не нашли.
... так что теперь я еще более смущен. Как они появляются и, очевидно, известны, но не могут быть достигнуты?
Часть, которая делает большинство подозреваемых, заключается в том, что пакет отладки маршрута не делает то, что должен быть. Я устанавливаю его с помощью nuget и пытаюсь поразить localhost/Application/rd, и он даже не может его найти. Итак, есть ли что-то еще, что мне нужно для правильного вращения? – PotatoPeel