Ваш RIA Services DomainService состоит из 2 частей. Вы скопировали клиентскую часть благодаря копированию файла XAP, но вам не хватает серверной части службы RIA WCF.
Вам необходимо переместить файлы службы домена с исходного веб-сайта Silverlight в новый проект ASP.Net (вместе с любыми настройками web.config, необходимыми для его правильного подключения). Этого нет в файлах ASPX. Не видя специфики ваших существующих проектов, я не могу точно сказать, какие имена файлов вам нужно перенести.
Я предлагаю всегда создавать библиотеки RIA Service вместо того, чтобы добавлять их непосредственно в приложение Silverlight. Затем вы можете связать клиентскую библиотеку с любым количеством приложений Silverlight, а затем связать .Web часть библиотеки RIA с вашим веб-сайтом, чтобы обеспечить службу WCF. Опять же, ключ заключается в переносе настроек конфигурации.
Вероятно, будет гораздо больше смысла, если вы создадите новый сервис RIA проект библиотеки , добавите свой EDM и т. Д., А затем свяжите половинки с отдельным приложением Silverlight и вашим новым веб-сайтом ASP.net.
Шаг за шагом:
- Создайте проект библиотеки служб RIA, выбрав Добавить новый проект . Выберите Silverlight слева. Выберите Библиотека классов служб WCF RIA справа. Я предполагаю, что это имя по умолчанию RIAServicesLibrary1 для этого примера. Он создаст клиентскую библиотеку Silverlight с именем RIAServicesLibrary1 и стандартную библиотеку .Net с именем RIAServicesLibrary1.Web для использования веб-сервером.
- Добавьте свой EDMX в проект
RiaServices.web
. Выберите Добавить новый элемент . Выберите Данные слева. Выберите ADO.Net Entity Data Model справа. Я буду предполагать, что это называется по умолчанию Model1.edmx
для этого примера. Подключите его к таблицам базы данных и т. Д.
- Создайте свой проект, чтобы на следующем этапе была найдена модель данных.
- Создайте доменную службу, ссылающуюся на ваши модели EDMX в вашем
RiaServices.web
проекте. Выберите Добавить новый элемент . Выберите Web слева. Выберите Класс обслуживания домена справа. Я буду предполагать, что это называется DomainService1.cs
для этого примера. Выберите элементы данных во всплывающем окне Добавить новый класс обслуживания домена , установив флажки. Для каждого выбранного элемента будет создан набор объектов и методов RIA-сервисов.
- Добавьте ссылку на проект клиентской библиотеки служб Ria ( RIAServicesLibrary1 ) в ваше приложение Silverlight.
- Добавьте ссылку на проект веб-библиотеки служб RIA ( RIAServicesLibrary1.Web ) в ваше веб-приложение хостинга (например, на веб-сайт ASP.Net).
- Скопируйте / объедините различные разделы файла RIAServicesLibrary1.Web / app.config в файл / web.config. Это будет включать любые строки подключения и разделы модуля.
- Снова создайте проект, чтобы в окне «Источник данных» отображались ваши новые источники данных «Контекст домена».
Используйте клиентский объект RIAServicesLibrary1
(в данном примере называемый DomainService1) непосредственно из вашего кода Silverlight, например:
Клиент DomainService1 = новый DomainService1 ();
или используйте окно Data Sources
для перетаскивания новой сетки и т. Д. На страницу.
Если окно Data Sources
не отображается, выберите меню «Данные», а затем «Показать источники данных».
Для получения дополнительной информации пройдите по ссылке Microsoft: Использование WCF RIA Services