Служба вызовов Silverlight WCF для обслуживания - PullRequest
1 голос
/ 19 февраля 2010

Вопрос:

Известны ли проблемы с вызовом службы, которая вызывает другую службу из Silverlight?

Сценарий:

У меня есть 3 проекта:

  1. SilverlightClient - проект Silverlight с кнопкой

  2. SilverlightClient.Web - веб-приложение, в котором размещается SilverlightClient.xap.

  3. BackEnd - другое веб-приложение, в котором размещена служба FOO , выполняющая некоторую специальную обработку бэкенда.

Я создал веб-службу Silverlight с поддержкой WCF как в SilverlightClient.Web, так и в Backend. Это соответственно SilverlightClientService и BackEndService .

С SilverlightClient.Web Я добавляю сервисную ссылку в BackEndService . У меня есть тестовая страница ASPX, на которой я написал код, который успешно вызывает BackEndService .

С SilverlightClient Я добавляю сервисную ссылку к SilverlightClient.Web * SilverlightClientService . Если мой SilverlightClientService возвращает простые данные, например строку, это работает довольно хорошо.

Однако, когда я меняю SilverlightClientService на вызов BackEndService , я получаю следующее исключение:

HTTP 415 - «Сбой запроса с состоянием HTTP 415: неподдерживаемый тип носителя.»

Ответы [ 2 ]

1 голос
/ 19 февраля 2010

У меня была проблема с двумя службами, не связанными. Мы наконец-то выяснили, что проблема связана с использованием Cassini (встроенного в Visual Studio IIS) для размещения BackEnd службы ListenerService. Переключение проекта на запуск в виртуальном каталоге IIS позволило им обмениваться данными.

Я видел: ошибка при получении ответа HTTP на http://localhost:1484/MainListenerService.cs. Это может быть связано с тем, что привязка конечной точки службы не использует протокол HTTP. Это также может быть связано с тем, что сервер прерывает контекст HTTP-запроса (возможно, из-за закрытия службы). Смотрите журналы сервера для более подробной информации. и эта ошибка: HTTP-запрос был запрещен при использовании схемы аутентификации клиента «Аноним».

0 голосов
/ 20 февраля 2010

Используете ли вы basicHttpBinding? Silverlight поддерживает только basicHttpBinding, но по умолчанию при создании службы WCF используется wsHttpBinding. Вы должны изменить это в своем файле web.config, прежде чем добавлять ссылку на свой проект Silverlight. Посмотрите это видео от Тима Хойера: http://silverlight.net/learn/videos/all/how-to-consume-wcf-and-aspnet-web-services-in-silverlight/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...