2011-01-14 2 views
0

Есть много статей на эту тему, но ни один из них не помог мне. Я пытаюсь реализовать сервис, который можно использовать без «Add Service Ref ...» в основном с советами hhttp: //www.netfxharmonics.com/2008/11/Understanding-WCF-Services-in-Silverlight-2.Клиент Silverlight получил ошибку NotFound от WCF

Я сделал небольшой проект, чтобы воспроизвести проблему. http://hotfile.com/dl/96710945/9991ac3/SilverlightApplication8.zip.html

Я попытался решением, как:
- Handling отказы в Silverlight - политики домена Cross и т.д.

Всех стандартных проверок выполняется, как, сервис активен и доступен, клиент удается создать канал и т.д.

Я столчу целую неделю с этой проблемой, и я не могу понять это.

Всякая помощь ценится.

+0

Вы должны установить и добавить службу в код svc-файла без интерфейсов. Вот как работает Silverlight. – vorrtex

+0

Использование SvcTraceViewer.exe Я обнаружил следующую ошибку: «Не удалось найти канал для приема входящего сообщения. Либо конечная точка, либо действие SOAP не были найдены». –

+0

vorrtex, я нашел реализацию с интерфейсом http://www.netfxharmonics.com/2008/11/Understanding-WCF-Services-in-Silverlight-2, так что это возможно. Я буду использовать ваш совет в качестве последнего средства. Спасибо –

ответ

0

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

Так что мой завод класс выглядел так:

Открытый класс TimeServiceFactory Inherits System.ServiceModel.Activation.ServiceHostFactoryBase

Public Overrides Function CreateServiceHost(ByVal constructorString As String, ByVal baseAddresses() As System.Uri) As System.ServiceModel.ServiceHostBase 
    Dim host As New ServiceHost(constructorString, baseAddresses) 

Это должно быть изменено в:

Открытый класс TimeServiceFactory наследующий System.ServiceModel.Activation.ServiceHostFactoryBase

Public Overrides Function CreateServiceHost(ByVal constructorString As String, ByVal baseAddresses() As System.Uri) As System.ServiceModel.ServiceHostBase 
    Dim host As New ServiceHost(GetType(TimeService), baseAddresses) 

Разница в том, что я не прошел конструкторString (у которого есть информация о типе класса обслуживания), я передал GetType (TimeService) instate, который предоставил правильную информацию о типе.

0

Denis, попытайтесь создать сервис в своем проекте веб-хостинга. Добавьте услугу, и тогда у вас будет возможность добавить ее в качестве ссылки в приложение Silverlight. Просто добавьте службу в SilverlightApplication8.Web. Щелкните правой кнопкой мыши на SilverlightApplication8.Web -> Добавить новый элемент -> В левой части выберите Silverlight -> Silverlight-enabled WCF. Затем добавьте ссылку на свой SilverlightApplication8.

+0

Дамир, спасибо за быстрый ответ. К сожалению, после того, как вы выполнили свою инструкцию, произошла ошибка. –

+0

Вы сказали, добавьте ссылку на вас SilverlightApplication8. Вы имели в виду служебную ссылку. Я выполнил клиент вручную, поэтому я могу избежать «Добавить ссылку службы ...» –

Смежные вопросы