При обращении к службе OData выдается 404 «Ошибка ресурса не найдена» - PullRequest
2 голосов
/ 21 сентября 2010

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

На моем сайте ASP.NET MVC 2 работает служба OData, которая прекрасно работает на моем ноутбуке IIS, но при развертывании ее на своем сайте в Winhost я получаю ошибку 404 Ресурс не найден при попытке доступа к .svc файл.

Ранее у меня было 2 разных аутентификации, поэтому я получил ошибку «System.InvalidOperationException: IIS указал схемы аутентификации« Basic, Anonymous »....», поэтому я знаю, что в этот момент обработчик пытался запустить сервис.

После исправления я получил сообщение об ошибке «Ресурс не найден».

Служба находится в папке / Services, но, похоже, это не имеет значения. Независимо от того, где я это поместил, всегда выдается ошибка 404. Все двоичные файлы из папки bin моего локального сайта находятся в папке bin моего удаленного сайта.

Все остальное на сайте работает нормально.

Если у кого-то есть решение этой проблемы, помощь будет принята с благодарностью.

1 Ответ

8 голосов
/ 22 сентября 2010

Наконец-то понял это. Поскольку мой сайт является сайтом ASP.NET MVC 2, мне нужно игнорировать маршрут к службе. В противном случае ASP.NET начнет искать контроллер для этого URI.

Итак, я добавил routes.IgnoreRoute("Services/ServiceFilename.svc/{*pathInfo}"); к своему global.asax.cs и проблема вуаля решена.

Хотя я не совсем понимаю, почему служба работает на моих ноутбуках IIS 7 без игнорируемого маршрута.

...