Как получить доступ к службе WCF в виртуальном каталоге в приложении asp.net MVC? - PullRequest
0 голосов
/ 01 февраля 2011

Я пытаюсь развернуть asp.net MVC и службу WCF на одном веб-сайте.Корневым сайтом является приложение MVC, и я собираюсь запустить WCF как виртуальный каталог сайта.Однако доступ к услуге невозможен, поскольку маршрутизация MVC не будет передавать запрос службе.Было бы сказано «Страница не найдена».

http://PC:9000 <- корень приложения mvc </p>

У меня есть виртуальный каталог для wcf с именем "wcf",

http://pc:9000/wcf/service.svc <- должен был получить доступ к службе, но маршруты mvc вмешались и отобразили страницу, не найденную. </p>

Есть идеи, как заставить это работать?Как бы я проигнорировал маршрутизацию, если вызов для службы?

Ответы [ 2 ]

0 голосов
/ 02 февраля 2011

Вот что я сделал:

Поскольку корневым приложением является MVC, когда пользователь пытается получить доступ к WCF в виртуальном каталоге и пытается выполнить навигацию, MVC обнаружит, что пользователь еще не аутентифицирован в приложении WCF. MVC будет перенаправлять его на страницу формы аутентификации, как указано в веб-конфигурации.

Чтобы решить эту проблему, просто добавьте следующий код в файл веб-конфигурации MVC.

<location path="WCF">
    <system.web>
      <authentication mode="None">
      </authentication>
    </system.web>
</location>

Это означает, что необходимо отключить аутентификацию пути WCF. Поэтому, когда пользователь получает доступ к службе WCF, он не будет уведомлять MVC о том, что WCF еще не аутентифицирован, и, следовательно, не происходит перенаправления.

Это решит мою проблему.

0 голосов
/ 01 февраля 2011

Попробуйте добавить маршрут игнорирования:

routes.IgnoreRoute("{resource}.svc");
...