#c# #asp.net-mvc #wcf #rest #routing
#c# #asp.net-mvc #wcf #rest #маршруты
Вопрос:
У меня есть сервер, который работает с веб-сайтом MVC и предоставляет REST API в том же файле web.config.
Все было хорошо, но внезапно rest API начал возвращаться:
Ресурс не может быть найден
Я глубоко изучил эту проблему и не нашел никаких изменений в коде, которые могут вызвать эту проблему. Другой сервер с той же версией кода работает нормально.
Я использовал инструмент RouteDebug и получил вывод о том, что маршрутизация для rest API нарушена. Что может вызвать это и как я могу это исправить?
Маршрутизация выполняется в файле global.asax.cs следующим образом:
routes.Add(new ServiceRoute("MyServices", new WebServiceHostFactory(), typeof(MyServicesType)));
Web.config:
<service name="namespace.MyServices">
<endpoint address="mex" binding="webHttpBinding" bindingConfiguration="webHttpBinding" behaviorConfiguration="REST" contract="namespace.IMyServices" />
</service>
</services>
Большое спасибо,
N.
Комментарии:
1. Регистрируете ли вы свой WebApiConfig при запуске приложения перед настройкой маршрута. RegisterRoutes? Если нет, можете ли вы попробовать поменять их местами и посмотреть, имеет ли это значение?
2. Привет, спасибо за ваш ответ. Мои вызовы в Global.asax.cs выглядят так: «AreaRegistration. RegisterAllAreas(); RegisterRoutes(RouteTable. Маршруты);» Я не вижу, где зарегистрирован файл конфигурации, но я думаю, что это служба IIS делает это до фактического запуска кода приложения.
Ответ №1:
После трудных дней я нахожу странное решение этой проблемы.
Я удалил из своего файла web.config описание служб, и он начал работать. Все еще не уверен, почему это работает, но сейчас он стабилен.
Спасибо, Нафтали.