Служба WCF вызывается с сервера IIS, на котором установлен XAP Silverlight, или напрямую из браузера клиента? Если бы вы разместили свои службы WCF на сервере, расположенном ближе к вашей базе данных (а не на том же сервере, что и ваша страница Silverlight / ASP.NET), нужно ли открывать порты сервера WCF для всего мира?
Это может звучать как простой ответ, но на самом деле это не так очевидно, как звучит, например:
- 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 находится в другом домене, а Клиент через Интернет.