Вопрос

Я пытаюсь создать сайт со следующим:

  • VS 2010 (для обновленных служб WCF RIA)
  • Silverlight 4.0 (входит в состав служб WCF RIA).
  • МВК 2
  • ЭФ 4.0

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

Когда я создаю приложение silverlight в приложении веб-форм, оно работает (я могу успешно добавить сетку данных и получить данные с помощью EF 4.0 и WCF RIA Services):альтернативный текст http://www.patleague.com/images/sl4_webforms.png

Когда я создаю приложение silverlight в приложении MVC2:альтернативный текст http://www.patleague.com/images/sl4_mvc2.png

Я получаю следующую ошибку (в обоих случаях я добавил одну и ту же сетку данных — простую таблицу с двумя записями):альтернативный текст http://www.patleague.com/images/sl4_mvc_dataerr.png

Серверная часть веб-форм работает, а серверная часть MVC — нет.Я безуспешно пробовал ведение журнала WCF, а также скрипач, но почему-то не могу получить никаких результатов (используя пример здесь: http://msdn.microsoft.com/en-us/library/ms730064.aspx), и я также безуспешно пытался получить некоторую информацию с помощью скрипача.Я действительно борюсь с этим, и мне интересно, сталкивался ли кто-нибудь еще с этой проблемой и нашел ли способ ее обойти?

Спасибо, Деннис

Это было полезно?

Решение 2

Эта проблема может быть специфичной для моего сайта, но, возможно, у других людей такая же проблема, и я был так чертовски расстроен этим, что на некоторое время бросил попытки и попробовал другие методы, чтобы сделать то, что хотел, но вернулся на Silverlight, потому что у меня проблемы с библиотеками Javascript и JS UI.Мне больше повезло со скрипачом при работе с развернутым сайтом (при работе с сервером разработки я не получил никаких результатов).

Когда я зашел на свой сайт с помощью приложения silverlight, появилось диалоговое окно с обычным сообщением «операция загрузки не удалась для запроса...», и при выделении ошибки fiddler показал следующее:

В IIS указаны схемы аутентификации «Базовая, анонимная», но привязка поддерживает указание только одной схемы аутентификации.Допустимые схемы проверки подлинности: дайджест, согласование, NTLM, базовая или анонимная.Измените настройки IIS, чтобы использовалась только одна схема аутентификации.

Я поискал эту ошибку в DiscountASP.net (мой хостинг-провайдер) и нашел статью базы знаний, в которой мне предлагалось обновить файл web.config (для IIS7) следующим образом:

<system.webServer>
  <security>
    <authentication>
      <basicAuthentication enabled="false" />
    </authentication>
  </security>
</system.webServer>

И альт!Я мог бы использовать службы WCF RIA с Silverlight в asp.net MVC2!Я также обнаружил, что во время исследования этого материала мне не нужно создавать специальную службу и фабрику домена-хоста, как описано в нескольких сообщениях в блоге, или менять маршрутизацию, чтобы избежать взаимодействия с MVC и запросом службы.Это все, что мне нужно было сделать

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

Спасибо, Деннис

Другие советы

Игнорирование маршрутов для служб исправило эту проблему при добавлении в Global.asax.cs:

routes.IgnoreRoute("{*allsvc}", new { allsvc = @".*\.svc(/.*)?" });

Благодарность за этот ответ должна принадлежать ОдинУмныйГай:его ответ также решил мою проблему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top