Вопросы развертывания WCF RIA Silverlight - PullRequest
4 голосов
/ 07 января 2010

Кажется, что мир наводнен людьми, испытывающими проблемы с развертыванием служб RIA WCF, и теперь я тоже один. Я уже перепробовал кучу вещей, но безрезультатно. Мне нужна WCF RIA для поддержки созданного мной приложения Silverlight 3.

Вкратце, используя новые сервисы WCF RIA (09 ноября?), Я открываю VS 2008, создаю новый проект (приложение silverlight), поддерживающий ".NET RIA services". Добавьте новый элемент в веб-проект - dbml-файл Linq2SQL (из подготовленной ранее базы данных SQL 2005) и скомпилируйте. Я добавляю в веб-проект новый элемент - службу домена (связываю нужные мне таблицы) и компилирую. Используя контекст домена, я «загружаю» данные стандартным запросом RIA в MainPage и добавляю TextBlock для отображения возвращаемых данных. Построй и беги (Кассини) - успех. Использование VS для публикации в IIS на локальном ПК - успех.

Использование VS для публикации на тестовом сервере (IIS6) - найдите местоположение и приложение Silverlight загружается, но Fiddler сообщает мне, что у меня есть 404 на все запросы WCF .svc. Используйте Fiddler для «запуска IE» по запросу на обслуживание, и это правда - 404.

Я уже запустил aspnet_regiis, ServiceModelReg и добавил типы MIME для .xap, .xaml, .xbap и .svc. Я включил DLL-файлы System.Web.Ria и System.Web.DomainServices с локальной копией true.

Мне нужна помощь либо с

а) решение

б) подход к поиску решения

Ответы [ 5 ]

3 голосов
/ 07 января 2010

У меня тоже были некоторые проблемы с этим, хотя, как только я понял их, все относительно просто.

Во-первых, пройдите http://timheuer.com/blog/archive/2009/12/10/tips-to-deploy-ria-services-troubleshoot.aspx (хотя кажется, что большая часть этого покрыта).

Убедитесь, что у вас есть свой DomainServiceModule в web.config в новом бите system.webServer и старом бите для IIS6:

    <httpModules>
   <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
   <add name="DomainServiceModule" type="System.Web.Ria.Services.DomainServiceHttpModule, System.Web.Ria, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </httpModules>

Наконец, я должен был создать свои сервисы вручную, создав файлы .svc, где их ищет SL (из fiddler), и заполнил их:

<%@ ServiceHost Service="NameOfSerice" Factory="System.Web.Ria.DomainServiceHostFactoryEx" %>

Убедитесь, что вы также обращаетесь к файлу .svc напрямую (без двоичного кода / в конце), так как вы можете получить там несколько приятных ошибок (ну, разумеется, после того, как вы решите свои 404!)

HTH,

Джордан.

1 голос
/ 18 мая 2010

Я некоторое время боролся с этой проблемой, когда не смог найти файл .svc. Вскоре я понял, что это были не только мои файлы .svc, это были все файлы .svc. Тогда это оказалось проблемой IIS6. Оказывается, расширения веб-службы ASP.NET v4.0x по умолчанию настроены как «Запрещенные». Перешел в конфигурацию расширений веб-службы и установил для ASP.NET v4.0x значение «Разрешено», и жизнь была хорошей

0 голосов
/ 08 мая 2013

Если кому-то интересно, как развернуть полное решение Silverlight для IIS с помощью собственного пакетного сценария, прочитайте мой ответ в этом посте:

Существует ли пользовательский интерфейс службы управления (WMSVC) в IIS 7 в Windows 7?

Я сделал это, потому что не было никакой возможности, встроенная функция веб-развертывания VS 2010 работала. Пакетный скрипт позволяет запускать и отлаживать на IIS .

Я знаю, это не точный ответ на этот вопрос, но это очень похожий вопрос.

0 голосов
/ 03 марта 2010

Я столкнулся с той же проблемой. Хорошо работал с сервером cassini под Windows 7. Развернут на Windows Server 2008 R2 с IIS7, и он не будет работать. Fiddler сообщил, что создается исключение EndPointNotFoundException.

Мое решение, поскольку я полностью управляю сервером, заключалось в установке Visual Studio 2008 Express, Silverlight 3 SDK и бета-версии WCF RIA Services для VS2008. Это означало, что необходимые библиотеки DLL уже были установлены в GAC. Я не думаю, что это повлияло на результат, но я отключил функцию «Копировать локально» для библиотек DLL RIA, на которые ссылается веб-приложение.

Возможно, неортодоксальное решение, но оно сработало для меня !!! На самом деле, я сделал это по предложению службы поддержки Microsoft.

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

0 голосов
/ 12 января 2010

Я думаю, вы бы использовали FactoryEx, только если бы вы расширили Factory, как описано здесь . Кроме того, согласно моим файлам справки, полное имя - System.Web.Ria.Services.DomainServiceHostFactory, но синтаксический анализатор также не может создать этот тип, хотя в GAC у меня есть System.Web.Ria.

Я согласен - развертывание WCF RIA через https является сложной задачей - мне еще предстоит заставить его работать.

...