clientaccesspolicy.xml
:
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*" />
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true" />
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
crossdomain.xml
:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy>
<cross-domain-policy>
<allow-http-request-headers-from domain="*" headers="*" secure="true" />
</cross-domain-policy>
Ничего особенного в этом нет, это стандартная настройка, которую миллионы сервисов WCF используют для доступа к ним клиентов Silverlight. К сожалению, эта установка не работает в реальной среде, в которой я развернут. Предварительная производственная среда, используемая для тестирования развертывания, настроена идентично для работы (или так утверждают системные администраторы), и там все прекрасно работает, поэтому я так растерялся.
У меня был один из системных администраторов, который отслеживал запрос от клиента Silverlight с использованием HTTPDebuggerPro, и он показывает, что клиент получает и 1011 *, и crossdomain.xml
без проблем (состояние HTTP 200). Тем не менее, после запроса этих файлов клиент пытается позвонить в службу и сразу получает CrossDomainException
.
Я также пытался заставить системных администраторов добавить URL-адрес службы WCF в список «Разрешенные сайты» Internet Explorer на поле, на котором размещен клиент Silverlight (согласно последнему предложению последнего абзаца из * 1017). * но это тоже не сработало.
HALP!