2015-06-23 3 views
1

У меня есть немного страшное время, чтобы работать с настройкой 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: локальный/приложение

Этот маршрут отладчик запускает и показывает, что никаких путей не были согласованы, но также показывает пути маршрутизации, которые я определены, но не нашли.

... так что теперь я еще более смущен. Как они появляются и, очевидно, известны, но не могут быть достигнуты?

+0

Часть, которая делает большинство подозреваемых, заключается в том, что пакет отладки маршрута не делает то, что должен быть. Я устанавливаю его с помощью nuget и пытаюсь поразить localhost/Application/rd, и он даже не может его найти. Итак, есть ли что-то еще, что мне нужно для правильного вращения? – PotatoPeel

ответ

0

Если вы следуете «типичным» учебным пособиям по настройке WebAPI, вы бы определили настраиваемый маршрут ApiController для включения «/ api».

Все ваши URLs должны выглядеть следующим образом:

localhost/Application/api/TestAPI/anything 

Как и в сторону, это может быть стоит просто раскрутить новый проект Web API. Модернизация существующего проекта может привести к большему количеству головных болей, чем это стоит.

+0

Да. Я сделал это как api, но с тех пор изменил его на TestAPI. Тем не менее, никто не работал. РЕДАКТИРОВАТЬ: Забыл сдвинуть-Enter Я не могу запустить новый проект. Его нужно модифицировать и работать вместе с текущим стилем «service.asmx». Я смог получить все это, работая как автономное, и все извращенные маленькие образцы работали отлично. Итак, я уверен, что здесь есть какая-то поездка, где я не знаком. – PotatoPeel