У меня есть функционирующее приложение Silverlight 4 (VS2010, SL4, WCF RIA, размещенная на моем dev поле с помощью Cassini, 64-разрядного Windows 7). В каталоге ClientBin у меня есть .svc файл, который описывает мой сервис:
<% @ServiceHost Service="MyApp.Services.MyService
Factory="System.ServiceModel.DomainServices.Hosting.DomainServiceHostFactory" %>
Когда я просматриваю на http://localhost:52878/ClientBin/MyApp-Services-MyService.svc, я вижу следующее:
Вы создали сервис. Для тестирования этого сервиса необходимо будет создать клиент и использовать его для вызова сервиса. Можно сделать это использование инструмента svcutil.exe из командной строки со следующим синтаксисом: svcutil.exe http://localhost:52878/ClientBin/MyApp-Services-MyService.svc?wsdl
Я хочу получить доступ к тому сервису из приложения службы Windows. Мое понимание - то, что я должен включить конечные точки SOAP, чтобы заставить это произойти. Так, я добавляю следующее к своему web.config файлу:
Во-первых, Intellisense жалуется на присутствие тега, заявляя:
Система элемента. ServiceModel имеет недопустимый дочерний элемент domainServices.
Во-вторых, вышеупомянутое приложение Silverlight прекращает работать, по-видимому, потому что это изменение повреждает базовые веб-сервисы.
В-третьих, кажется что Система. ServiceModel. DomainServices. Несущая сборка на самом деле не содержит тип SoapXmlEndpointFactory; если я пытаюсь просмотреть к сервису после добавляющего вышеупомянутого к web.config, я вижу:
Не мог загрузить тип 'Система. ServiceModel. DomainServices. Хостинг. SoapXmlEndpointFactory' от блока 'Система. ServiceModel. DomainServices. Хостинг, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
Если я осматриваю блок с помощью Отражателя, я вижу, что он содержит типы DomainServiceEndpointFactory и PoxBinaryEndpointFactory, но никакой SoapXmlEndpointFactory.
Кто-то мог сообщить мне, как я должен делать это? Я не могу полагать, что это должно быть это трудно для простого потребления сервиса RIA WCF в чем-то другом, чем приложение Silverlight!
Вы пробовали просто запустить
svcutil.exe http: // localhost: 52878 / ClientBin / MyApp-Services-MyService.svc? Wsdl
Вы также установили Инструментарий служб RIA? http://www.microsoft.com/downloads/details.aspx?FamilyID=7b43bab5-a8ff-40ed-9c84-11abb9cda559&displaylang=en
Требуется для SOAP и JSON конечные точки
Класс SoapXmlEndpointFactory
является частью сборки
Microsoft.ServiceModel.DomainServices.Hosting
, которая включена в Silverlight Toolkit.
См. здесь