Я только что попытался добавить WebService (asmx базирующийся) от проекта WebForms до нового проекта MVC. Я, может казаться, не добираюсь до asmx веб-сервиса в IE?
В MVC это должно работать то же, у меня есть сервис в папке Services, это должно быть в Представлении, или этот asmx должен работать вне маршрутизации 'MVC'?
Обновление:
Я создал WebService, первоначально заглядывающий .asmx файлу на тестовый сервер, недавно устанавливаю с.Net 4.0 для проекта VS2010 MVC 2. (Windows Server 2003 IIS 6)
Тот же Веб-сервис находится на разработке (VS 2010), машина видима? Какие-либо идеи о различии, возможно проблема установки?
Отвечая на свой вопрос ..
Я вижу службы WCF при создании базовой службы (и не вижу asmx services)
Поскольку WCF в любом случае считается подходящим вариантом, я этим и занимаюсь.
Я не уговаривал заставить asmx работать.
По словам Скотта Хансельмана, запрос по умолчанию не обрабатывается механизмом маршрутизации ASP.NET MVC:
Почему ASP.NET MVC не захватывает запрос? По двум причинам. Во-первых, в RouteCollection есть опция RouteExistingFiles. По умолчанию он установлен в false, что заставляет ASP.NET MVC автоматически пропускать маршрутизацию, если файл существует на диске. (Source)
Что указывает на то, что проблема где-то еще.
Если вам нужно быстрое/простое/грязное решение, вытащите ASMX Service из MVC Routing.
Если вы хотите сделать все лучшим способом, вытащите логику из службы ASMX и создайте для нее новую страницу в приложении MVC. Затем вы можете реализовать логику в контроллере и позволить представлению обрабатывать возврат SOAP-сообщения (или вы можете использовать JSON, в зависимости от того, кто потребляет сервис).
Это должно работать вне MVC-маршрутизации. Достаточно создать папку с asmx-файлами. У меня есть папка 'webservices' внутри моего проекта, и она отлично работает! Не нужно настраивать маршрутизацию на игнорирование пути, файл действительно существует на сервере.
ДА, это так, я создал базовый проект, затем щелкнул правой кнопкой мыши имя проекта и добавил в него файл веб-службы с демонстрацией hello world. Если вы просматриваете этот файл в браузере, он работает нормально.