Работают ли стандартные веб-сервисы (asmx) с MVC? - PullRequest
6 голосов
/ 22 февраля 2010

Я только что попытался добавить WebService (на основе asmx) из проекта WebForms в новый проект MVC. Кажется, я не могу получить доступ к asmx webservice в IE?

В MVC это должно работать так же, у меня есть служба в папке Services, это должно быть в View или этот asmx должен работать вне маршрутизации MVC?

Обновление:

Я настроил WebService, который изначально сбрасывал файл .asmx на тестовый сервер, недавно настроенный на .Net 4.0 для проекта VS2010 MVC 2. (Windows Server 2003 IIS 6)

Тот же веб-сервис находится на машине для разработки (VS 2010) для просмотра? Есть идеи по поводу разницы, возможно, проблема с настройкой?

Ответы [ 5 ]

2 голосов
/ 22 февраля 2010

По словам Скотта Хансельмана, запрос по умолчанию не обрабатывается механизмом маршрутизации ASP.NET MVC:

Почему ASP.NET MVC не получает запрос? Две причины. Во-первых, в RouteCollection есть опция RouteExistingFiles. По умолчанию он имеет значение false, что заставляет ASP.NET MVC автоматически пропускать маршрутизацию, когда файл существует на диске. ( Источник )

Что указывало бы на наличие проблемы где-то еще.

1 голос
/ 19 марта 2010

ДА, да, я создал базовый проект, затем щелкнул правой кнопкой мыши на имени проекта и добавил файл веб-сервиса с демо hello world. Если вы просматриваете этот файл в браузере, он работает нормально.

1 голос
/ 28 февраля 2010

Отвечая на мой вопрос ..

Я вижу службы WCF при создании базовой службы (и не вижу службы asmx)

Поскольку WCF в любом случае считается идеей, я делаю это.

Я не продолжал заставлять asmx работать.

1 голос
/ 22 февраля 2010

Если вы хотите быстрое / простое / грязное решение, как-то вытяните службу ASMX из MVC Routing.

Если вы хотите сделать что-то лучше, извлеките логику из службы ASMX и создайте для нее новую страницу в приложении MVC. Затем вы можете реализовать логику в вашем контроллере и позволить представлению обрабатывать возврат сообщения SOAP (или вы можете использовать JSON в зависимости от того, кто использует службу).

0 голосов
/ 22 февраля 2010

Должно работать за пределами MVC-маршрутизации. Достаточно просто создать папку с asmx-файлами. У меня есть папка «webservices» внутри моего проекта, и она прекрасно работает! Нет необходимости устанавливать маршрутизацию для игнорирования пути, файл существует на сервере.

...