Услуги Silverlight WCF: доступ к WCF осуществляется через клиента? - PullRequest
1 голос
/ 22 февраля 2011

Служба WCF вызывается с сервера IIS, на котором установлен XAP Silverlight, или напрямую из браузера клиента? Если бы вы разместили свои службы WCF на сервере, расположенном ближе к вашей базе данных (а не на том же сервере, что и ваша страница Silverlight / ASP.NET), нужно ли открывать порты сервера WCF для всего мира?

Это может звучать как простой ответ, но на самом деле это не так очевидно, как звучит, например:

  1. ClientAccessPolicy.xml

Этот файл помогает вам контролировать, какие домены имеют доступ к вашему WCF оказание услуг. Вот очень простой пример о том, как вы можете ограничить доступ только к те приложения, работающие под вашим желаемый домен. Это позволяет кому-то запуск вашего приложения Silverlight как из безопасного, так и из небезопасного URL-адрес.

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="https://www.yourwebsite.com"/>
<domain uri="http://www.yourwebsite.com"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>

Звучит так, как будто звонок возвращается на веб-сервер, на котором размещено приложение Silverlight, а затем в службу WCF.

Дополнительно: Я понимаю, что, возможно, я не очень хорошо изложил свой вопрос.

Если у вас есть сервер, который вы используете для своего сервера WCF ( Сервер A ) и сервер, на котором размещено ваше приложение Silverlight ( Сервер B )

Ваш клиент напрямую звонит на Сервер A или делает запрос на Сервер B , который используется в качестве прокси для связи с Сервером A ?

Сервер A находится в одном домене, Сервер B находится в другом домене, а Клиент через Интернет.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2011

Silverlight не может размещать сервисы, даже внутрипроцессные, по крайней мере, насколько я знаю.Ваша служба будет размещаться в IIS вместе с приложением ASP.NET, которое, вероятно, содержит ваш тег Silverlight.

Относительно того, где вы размещаете службу, если только у вас нет веских оснований полагать, что она принадлежит серверу базы данных, несделай это.Я бы сравнил это с написанием хранимых процедур с бизнес-логикой, потому что вас интересует объем данных, передаваемых из вашей базы данных - обычно это то, к чему вы прибегаете, когда у вас есть реальная потребность, а не гипотетическая.

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

0 голосов
/ 22 февраля 2011

В silverlight приложение silverlight работает полностью в контексте браузера. Единственное общение, разрешенное в обычном приложении Silverlight, развернутом через Интернет, - через сервисы.

По-прежнему приятно иметь службу WCF как можно ближе к базе данных, но это не имеет ничего общего с частью сценария silverlight.

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